<?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>33095</bug_id>
          
          <creation_ts>2010-01-01 07:54:59 -0800</creation_ts>
          <short_desc>SVG FilterEffects need to invalidate ResourceFilter on svgAttributeChanged</short_desc>
          <delta_ts>2014-05-12 05:54:35 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>68469</blocked>
    
    <blocked>26389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>176270</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-01 07:54:59 -0800</bug_when>
    <thetext>SVG FilterEffects need to invalidate ResourceFilter on svgAttributeChanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176283</commentid>
    <comment_count>1</comment_count>
      <attachid>45735</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-01 14:45:00 -0800</bug_when>
    <thetext>Created attachment 45735
Preperation of  svgAttrChanged pactch

Preperation of  svgAttrChanged pactch. Save reference to the ResourceFilter to invalidate if one effect changes Attribute. Next patch will add svgAttributeChanged and dynamic-update tests.
It is also possible to create more than one Resource per Id. This helps to fix bug 19388.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176285</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-01 14:57:27 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45735 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176310</commentid>
    <comment_count>3</comment_count>
      <attachid>45735</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-02 05:16:38 -0800</bug_when>
    <thetext>Comment on attachment 45735
Preperation of  svgAttrChanged pactch

Got ASSERTION FAILED: object
(SVGFilterElement.cpp:190 virtual WebCore::SVGResource* WebCore::SVGFilterElement::canvasResource(const WebCore::RenderObject*))

in Debug build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176312</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-02 06:38:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 45735 [details])
&gt; Got ASSERTION FAILED: object
&gt; (SVGFilterElement.cpp:190 virtual WebCore::SVGResource*
&gt; WebCore::SVGFilterElement::canvasResource(const WebCore::RenderObject*))
&gt; 
&gt; in Debug build.

This problem does only appear during LayoutTests. It also looks like a general bug in  RenderSVGTextToTree. See bug 33105</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176402</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-01-02 16:59:28 -0800</bug_when>
    <thetext>After talking with Niko on IRC it turns out, that SVGStyledElement is doing the job already. All effects and the filter itself inherit from SVGStyledElement. Closing this bug now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45735</attachid>
            <date>2010-01-01 14:45:00 -0800</date>
            <delta_ts>2010-01-02 05:16:37 -0800</delta_ts>
            <desc>Preperation of  svgAttrChanged pactch</desc>
            <filename>filter-prep-cleanup2.patch</filename>
            <type>text/plain</type>
            <size>20423</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjY4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjMgQEAKKzIwMTAtMDEtMDEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
RmlsdGVyRWZmZWN0cyBuZWVkIHRvIGludmFsaWRhdGUgUmVzb3VyY2VGaWx0ZXIgb24gc3ZnQXR0
cmlidXRlQ2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzMwOTUKKworICAgICAgICBQcmVwZXJhdGlvbiBmb3IgaW52YWxpZGF0ZSBTVkdSZXNv
dXJjZUZpbHRlcnMgb24gY2hhbmdlIG9mIGVmZmVjdCBhdHRyaWJ1dGVzLgorICAgICAgICBUaGUg
bmV4dCBzdGVwIGlzIHRvIGltcGxlbWVudCBzdmdBdHRyaWJ1dGVDaGFuZ2VkIGZvciBldmVyeSBT
VkdGRSpFbGVtZW50LgorICAgICAgICBJdCdzIGFsc28gcG9zc2libGUgdG8gY3JlYXRlIG11bHRp
cGxlIHJlc291cmNlcyBwZXIgZmlsdGVySWQgbm93LiBUaGlzIGlzIG5vIGNoYW5nZQorICAgICAg
ICBpbiBmdW5jdGlvbmFsaXR5IGF0IHRoZSBtb21lbnQsIGJlY2F1c2UgZmlsdGVycyBhcmUgcmVj
cmVhdGVkIG9uIGV2ZXJ5IGNhbGwgb2YKKyAgICAgICAgU1ZHUmVzb3VyY2VGaWx0ZXI6OnByZXBh
cmVGaWx0ZXIoKSBhbmQgU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5RmlsdGVyKCkuCisgICAgICAg
IEZvciBtb3JlIGluZm9ybWF0aW9uOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkzODgKKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIHZpc2libGUgY2hhbmdlIGlu
IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBzdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVCbGVuZEVsZW1lbnQ6OmJ1aWxkKToKKyAgICAgICAgKiBz
dmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQ6OmJ1aWxkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQ6OmJ1aWxkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6YnVpbGQpOgor
ICAgICAgICAqIHN2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpidWlsZCk6CisgICAgICAgICog
c3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmJ1aWxkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVG
bG9vZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVGbG9vZEVsZW1lbnQ6OmJ1
aWxkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6YnVpbGQpOgorICAgICAgICAq
IHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdl
RWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2Zy9TVkdGRU1lcmdlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRU1lcmdlRWxlbWVudDo6YnVpbGQpOgorICAgICAgICAqIHN2
Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQ6OmJ1aWxkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVPZmZzZXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFT2Zmc2V0RWxlbWVudDo6YnVpbGQpOgorICAg
ICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmJ1aWxkKToKKyAgICAgICAgKiBz
dmcvU1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRpbGVFbGVt
ZW50OjpidWlsZCk6CisgICAgICAgICogc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YnVpbGQpOgorICAgICAg
ICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRl
ckVsZW1lbnQ6OmJ1aWxkRmlsdGVyRWZmZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0
ZXJFbGVtZW50OjpjYW52YXNSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlczo6c2V0U3RhbmRhcmRBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6aW52YWxpZGF0ZUZpbHRlcik6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmJ1aWxkKToK
KyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6Cisg
ICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Jlc291cmNlRmlsdGVyOjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Jlc291cmNlRmlsdGVyOjpwcmVwYXJlRmlsdGVyKToKKyAgICAgICAgKiBzdmcvZ3JhcGhp
Y3MvU1ZHUmVzb3VyY2VGaWx0ZXIuaDoKKwogMjAwOS0xMi0zMSAgQ2hyaXN0aWFuIER5d2FuICA8
Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEuCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1
MjY3MCkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjQsNiArNjQsOCBAQCB2b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpCiAKIGJvb2wgU1ZHRkVCbGVuZEVsZW1lbnQ6OmJ1aWxkKFNWR1Jlc291cmNlRmlsdGVyKiBm
aWx0ZXJSZXNvdXJjZSkKIHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM6OmJ1aWxkKGZpbHRlclJlc291cmNlKTsKKwogICAgIEZpbHRlckVmZmVjdCogaW5wdXQxID0g
ZmlsdGVyUmVzb3VyY2UtPmJ1aWxkZXIoKS0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAgICAgRmls
dGVyRWZmZWN0KiBpbnB1dDIgPSBmaWx0ZXJSZXNvdXJjZS0+YnVpbGRlcigpLT5nZXRFZmZlY3RC
eUlkKGluMigpKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cAkocmV2aXNpb24gNTI2NzApCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDggQEAgdm9pZCBTVkdGRUNvbG9yTWF0
cml4RWxlbWVudDo6cGFyc2VNYXBwZQogCiBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojpi
dWlsZChTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyUmVzb3VyY2UpCiB7CisgICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpidWlsZChmaWx0ZXJSZXNvdXJjZSk7CisKICAg
ICBGaWx0ZXJFZmZlY3QqIGlucHV0MSA9IGZpbHRlclJlc291cmNlLT5idWlsZGVyKCktPmdldEVm
ZmVjdEJ5SWQoaW4xKCkpOwogCiAgICAgaWYgKCFpbnB1dDEpCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MjY3MCkKKysr
IFdlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTYsNiArNTYsOCBAQCB2b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
OjpwYXJzCiAKIGJvb2wgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmJ1aWxkKFNWR1Jl
c291cmNlRmlsdGVyKiBmaWx0ZXJSZXNvdXJjZSkKIHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM6OmJ1aWxkKGZpbHRlclJlc291cmNlKTsKKwogICAgIEZpbHRlckVm
ZmVjdCogaW5wdXQxID0gZmlsdGVyUmVzb3VyY2UtPmJ1aWxkZXIoKS0+Z2V0RWZmZWN0QnlJZChp
bjEoKSk7CiAgICAgCiAgICAgaWYgKCFpbnB1dDEpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvc2l0ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9z
aXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyNjcwKQorKysgV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNiArODAsOCBAQCB2b2lkIFNW
R0ZFQ29tcG9zaXRlRWxlbWVudDo6cGFyc2VNYXBwZWRBCiAKIGJvb2wgU1ZHRkVDb21wb3NpdGVF
bGVtZW50OjpidWlsZChTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyUmVzb3VyY2UpCiB7CisgICAg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpidWlsZChmaWx0ZXJSZXNvdXJj
ZSk7CisKICAgICBGaWx0ZXJFZmZlY3QqIGlucHV0MSA9IGZpbHRlclJlc291cmNlLT5idWlsZGVy
KCktPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogICAgIEZpbHRlckVmZmVjdCogaW5wdXQyID0gZmls
dGVyUmVzb3VyY2UtPmJ1aWxkZXIoKS0+Z2V0RWZmZWN0QnlJZChpbjIoKSk7CiAgICAgCkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAJKHJldmlzaW9u
IDUyNjcwKQorKysgV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsOCBAQCB2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudDo6cGFyc2VNCiAKIGJvb2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpidWls
ZChTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyUmVzb3VyY2UpCiB7CisgICAgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpidWlsZChmaWx0ZXJSZXNvdXJjZSk7CisKICAgICBG
aWx0ZXJFZmZlY3QqIGlucHV0MSA9IGZpbHRlclJlc291cmNlLT5idWlsZGVyKCktPmdldEVmZmVj
dEJ5SWQoaW4xKCkpOwogICAgIAogICAgIGlmICghaW5wdXQxKQpJbmRleDogV2ViQ29yZS9zdmcv
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MjY3MCkKKysrIFdl
YkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc0LDYgKzc0LDggQEAgdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnBhcnNl
TQogCiBib29sIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6YnVpbGQoU1ZHUmVzb3VyY2VG
aWx0ZXIqIGZpbHRlclJlc291cmNlKQogeworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6YnVpbGQoZmlsdGVyUmVzb3VyY2UpOworCiAgICAgRmlsdGVyRWZmZWN0KiBp
bnB1dDEgPSBmaWx0ZXJSZXNvdXJjZS0+YnVpbGRlcigpLT5nZXRFZmZlY3RCeUlkKGluMSgpKTsK
ICAgICBGaWx0ZXJFZmZlY3QqIGlucHV0MiA9IGZpbHRlclJlc291cmNlLT5idWlsZGVyKCktPmdl
dEVmZmVjdEJ5SWQoaW4yKCkpOwogICAgIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmNw
cAkocmV2aXNpb24gNTI2NzApCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDggQEAgU1ZHRkVGbG9vZEVsZW1lbnQ6On5TVkdG
RUZsb29kRWxlbWVudCgpCiAKIGJvb2wgU1ZHRkVGbG9vZEVsZW1lbnQ6OmJ1aWxkKFNWR1Jlc291
cmNlRmlsdGVyKiBmaWx0ZXJSZXNvdXJjZSkKIHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM6OmJ1aWxkKGZpbHRlclJlc291cmNlKTsKKwogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gZmlsdGVyU3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7CiAKICAgICBDb2xvciBj
b2xvciA9IGZpbHRlclN0eWxlLT5zdmdTdHlsZSgpLT5mbG9vZENvbG9yKCk7CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyNjcwKQorKysg
V2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjcsNiArNjcsOCBAQCB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VNYXBw
CiAKIGJvb2wgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpidWlsZChTVkdSZXNvdXJjZUZpbHRl
ciogZmlsdGVyUmVzb3VyY2UpCiB7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjpidWlsZChmaWx0ZXJSZXNvdXJjZSk7CisKICAgICBGaWx0ZXJFZmZlY3QqIGlucHV0
MSA9IGZpbHRlclJlc291cmNlLT5idWlsZGVyKCktPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogCiAg
ICAgaWYgKCFpbnB1dDEpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lv
biA1MjY3MCkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODQsNiArODQsOCBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50Ojpub3RpZnlGaW5p
c2hlZChDCiAKIGJvb2wgU1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkKFNWR1Jlc291cmNlRmlsdGVy
KiBmaWx0ZXJSZXNvdXJjZSkKIHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM6OmJ1aWxkKGZpbHRlclJlc291cmNlKTsKKyAgICAKICAgICBpZiAoIW1fY2FjaGVkSW1h
Z2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50
LmNwcAkocmV2aXNpb24gNTI2NzApCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDggQEAgU1ZHRkVNZXJnZUVsZW1lbnQ6On5T
VkdGRU1lcmdlRWxlbWVudCgpCiAKIGJvb2wgU1ZHRkVNZXJnZUVsZW1lbnQ6OmJ1aWxkKFNWR1Jl
c291cmNlRmlsdGVyKiBmaWx0ZXJSZXNvdXJjZSkKIHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM6OmJ1aWxkKGZpbHRlclJlc291cmNlKTsKKyAgICAKICAgICBWZWN0
b3I8UmVmUHRyPEZpbHRlckVmZmVjdD4gPiBtZXJnZUlucHV0czsKICAgICBmb3IgKE5vZGUqIG4g
PSBmaXJzdENoaWxkKCk7IG4gIT0gMDsgbiA9IG4tPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAg
aWYgKG4tPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZlTWVyZ2VOb2RlVGFnKSkgewpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAJKHJldmlzaW9uIDUyNjcwKQorKysgV2Vi
Q29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDYgKzcyLDggQEAgdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZU1hcHBlZAogCiBi
b29sIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmJ1aWxkKFNWR1Jlc291cmNlRmlsdGVyKiBmaWx0
ZXJSZXNvdXJjZSkKIHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6
OmJ1aWxkKGZpbHRlclJlc291cmNlKTsKKwogICAgIEZpbHRlckVmZmVjdCogaW5wdXQxID0gZmls
dGVyUmVzb3VyY2UtPmJ1aWxkZXIoKS0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKICAgICBpZiAo
IWlucHV0MSkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAkocmV2aXNpb24gNTI2
NzApCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw2ICs1Niw4IEBAIHZvaWQgU1ZHRkVPZmZzZXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHIKIAogYm9vbCBTVkdGRU9mZnNldEVsZW1lbnQ6OmJ1aWxkKFNWR1Jlc291cmNlRmlsdGVyKiBm
aWx0ZXJSZXNvdXJjZSkKIHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM6OmJ1aWxkKGZpbHRlclJlc291cmNlKTsKKwogICAgIEZpbHRlckVmZmVjdCogaW5wdXQxID0g
ZmlsdGVyUmVzb3VyY2UtPmJ1aWxkZXIoKS0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKICAgICBp
ZiAoIWlucHV0MSkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQuY3BwCShyZXZpc2lvbiA1MjY3MCkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJM
aWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw4IEBAIFBhc3NS
ZWZQdHI8TGlnaHRTb3VyY2U+IFNWR0ZFU3BlY3VsYXJMaWcKIAogYm9vbCBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50OjpidWlsZChTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyUmVzb3VyY2Up
CiB7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpidWlsZChmaWx0
ZXJSZXNvdXJjZSk7CisKICAgICBGaWx0ZXJFZmZlY3QqIGlucHV0MSA9IGZpbHRlclJlc291cmNl
LT5idWlsZGVyKCktPmdldEVmZmVjdEJ5SWQoaW4xKCkpOwogICAgIAogICAgIGlmICghaW5wdXQx
KQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyNjcwKQorKysgV2Vi
Q29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUx
LDggQEAgdm9pZCBTVkdGRVRpbGVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYgogCiBib29sIFNW
R0ZFVGlsZUVsZW1lbnQ6OmJ1aWxkKFNWR1Jlc291cmNlRmlsdGVyKiBmaWx0ZXJSZXNvdXJjZSkK
IHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmJ1aWxkKGZpbHRl
clJlc291cmNlKTsKKwogICAgIEZpbHRlckVmZmVjdCogaW5wdXQxID0gZmlsdGVyUmVzb3VyY2Ut
PmJ1aWxkZXIoKS0+Z2V0RWZmZWN0QnlJZChpbjEoKSk7CiAKICAgICBpZiAoIWlucHV0MSkKSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MjY3MCkK
KysrIFdlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03Niw2ICs3Niw4IEBAIHZvaWQgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6cGFyc2VNYXBw
ZWQKIAogYm9vbCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpidWlsZChTVkdSZXNvdXJjZUZpbHRl
ciogZmlsdGVyUmVzb3VyY2UpCiB7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjpidWlsZChmaWx0ZXJSZXNvdXJjZSk7CisKICAgICBSZWZQdHI8RmlsdGVyRWZmZWN0
PiBlZmZlY3QgPSBGRVR1cmJ1bGVuY2U6OmNyZWF0ZShzdGF0aWNfY2FzdDxUdXJidWxhbmNlVHlw
ZT4odHlwZSgpKSwgYmFzZUZyZXF1ZW5jeVgoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmFzZUZyZXF1ZW5jeVkoKSwgbnVtT2N0YXZlcygpLCBzZWVkKCksIHN0
aXRjaFRpbGVzKCkgPT0gU1ZHX1NUSVRDSFRZUEVfU1RJVENIKTsKICAgICBmaWx0ZXJSZXNvdXJj
ZS0+YWRkRmlsdGVyRWZmZWN0KHRoaXMsIGVmZmVjdC5yZWxlYXNlKCkpOwpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDUyNjcwKQorKysgV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiw4ICsxMjYsMTQgQEAgRmxvYXRS
ZWN0IFNWR0ZpbHRlckVsZW1lbnQ6OmZpbHRlckJvdW5kaQogICAgIHJldHVybiBmaWx0ZXJCQm94
OwogfQogCi12b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OmJ1aWxkRmlsdGVyKGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCkgY29uc3QKK2Jvb2wgU1ZHRmlsdGVyRWxlbWVudDo6YnVpbGRGaWx0ZXJF
ZmZlY3RzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KSBjb25zdAogeworICAgIGlmICghbV9m
aWx0ZXIuY29udGFpbnMob2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVm
UHRyPFNWR1Jlc291cmNlRmlsdGVyPiBmaWx0ZXIgPSBtX2ZpbHRlci5nZXQob2JqZWN0KS5nZXQo
KTsKKworICAgIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCA9IG9iamVjdC0+b2JqZWN0Qm91
bmRpbmdCb3goKTsKICAgICBib29sIGZpbHRlckJCb3hNb2RlID0gZmlsdGVyVW5pdHMoKSA9PSBT
VkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1g7CiAgICAgYm9vbCBw
cmltaXRpdmVCQm94TW9kZSA9IHByaW1pdGl2ZVVuaXRzKCkgPT0gU1ZHVW5pdFR5cGVzOjpTVkdf
VU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YOwogCkBAIC0xNDUsNDYgKzE1MSw1MiBAQCB2b2lk
IFNWR0ZpbHRlckVsZW1lbnQ6OmJ1aWxkRmlsdGVyKGNvbnN0CiAKICAgICBGbG9hdFJlY3QgZmls
dGVyUmVjdCA9IGZpbHRlckJCb3g7CiAgICAgaWYgKGZpbHRlckJCb3hNb2RlKQotICAgICAgICBm
aWx0ZXJSZWN0ID0gRmxvYXRSZWN0KHRhcmdldFJlY3QueCgpICsgZmlsdGVyUmVjdC54KCkgKiB0
YXJnZXRSZWN0LndpZHRoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0
UmVjdC55KCkgKyBmaWx0ZXJSZWN0LnkoKSAqIHRhcmdldFJlY3QuaGVpZ2h0KCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUmVjdC53aWR0aCgpICogdGFyZ2V0UmVjdC53
aWR0aCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclJlY3QuaGVpZ2h0
KCkgKiB0YXJnZXRSZWN0LmhlaWdodCgpKTsKLQotICAgIG1fZmlsdGVyLT5zZXRGaWx0ZXJCb3Vu
ZGluZ0JveChmaWx0ZXJSZWN0KTsKLSAgICBtX2ZpbHRlci0+c2V0RmlsdGVyUmVjdChmaWx0ZXJC
Qm94KTsKLSAgICBtX2ZpbHRlci0+c2V0RWZmZWN0Qm91bmRpbmdCb3hNb2RlKHByaW1pdGl2ZUJC
b3hNb2RlKTsKLSAgICBtX2ZpbHRlci0+c2V0RmlsdGVyQm91bmRpbmdCb3hNb2RlKGZpbHRlckJC
b3hNb2RlKTsKKyAgICAgICAgZmlsdGVyUmVjdCA9IEZsb2F0UmVjdChvYmplY3RCb3VuZGluZ0Jv
eC54KCkgKyBmaWx0ZXJSZWN0LngoKSAqIG9iamVjdEJvdW5kaW5nQm94LndpZHRoKCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0Qm91bmRpbmdCb3gueSgpICsgZmlsdGVy
UmVjdC55KCkgKiBvYmplY3RCb3VuZGluZ0JveC5oZWlnaHQoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaWx0ZXJSZWN0LndpZHRoKCkgKiBvYmplY3RCb3VuZGluZ0JveC53aWR0
aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclJlY3QuaGVpZ2h0KCkg
KiBvYmplY3RCb3VuZGluZ0JveC5oZWlnaHQoKSk7CisKKyAgICBmaWx0ZXItPnNldEZpbHRlckJv
dW5kaW5nQm94KGZpbHRlclJlY3QpOworICAgIGZpbHRlci0+c2V0RmlsdGVyUmVjdChmaWx0ZXJC
Qm94KTsKKyAgICBmaWx0ZXItPnNldEVmZmVjdEJvdW5kaW5nQm94TW9kZShwcmltaXRpdmVCQm94
TW9kZSk7CisgICAgZmlsdGVyLT5zZXRGaWx0ZXJCb3VuZGluZ0JveE1vZGUoZmlsdGVyQkJveE1v
ZGUpOwogCiAgICAgaWYgKGhhc0F0dHJpYnV0ZShTVkdOYW1lczo6ZmlsdGVyUmVzQXR0cikpIHsK
LSAgICAgICAgbV9maWx0ZXItPnNldEhhc0ZpbHRlclJlc29sdXRpb24odHJ1ZSk7Ci0gICAgICAg
IG1fZmlsdGVyLT5zZXRGaWx0ZXJSZXNvbHV0aW9uKEZsb2F0U2l6ZShmaWx0ZXJSZXNYKCksIGZp
bHRlclJlc1koKSkpOworICAgICAgICBmaWx0ZXItPnNldEhhc0ZpbHRlclJlc29sdXRpb24odHJ1
ZSk7CisgICAgICAgIGZpbHRlci0+c2V0RmlsdGVyUmVzb2x1dGlvbihGbG9hdFNpemUoZmlsdGVy
UmVzWCgpLCBmaWx0ZXJSZXNZKCkpKTsKICAgICB9Ci0KKyAgICAKICAgICAvLyBBZGQgZWZmZWN0
cyB0byB0aGUgZmlsdGVyCi0gICAgbV9maWx0ZXItPmJ1aWxkZXIoKS0+Y2xlYXJFZmZlY3RzKCk7
CisgICAgZmlsdGVyLT5idWlsZGVyKCktPmNsZWFyRWZmZWN0cygpOwogICAgIGZvciAoTm9kZSog
biA9IGZpcnN0Q2hpbGQoKTsgbiAhPSAwOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgewogICAgICAg
ICBTVkdFbGVtZW50KiBlbGVtZW50ID0gMDsKICAgICAgICAgaWYgKG4tPmlzU1ZHRWxlbWVudCgp
KSB7CiAgICAgICAgICAgICBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG4pOwog
ICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmlzRmlsdGVyRWZmZWN0KCkpIHsKICAgICAgICAgICAg
ICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMqIGVmZmVjdEVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMqPihlbGVt
ZW50KTsKLSAgICAgICAgICAgICAgICBpZiAoIWVmZmVjdEVsZW1lbnQtPmJ1aWxkKG1fZmlsdGVy
LmdldCgpKSkgewotICAgICAgICAgICAgICAgICAgICBtX2ZpbHRlci0+YnVpbGRlcigpLT5jbGVh
ckVmZmVjdHMoKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
aWYgKCFlZmZlY3RFbGVtZW50LT5idWlsZChmaWx0ZXIuZ2V0KCkpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGZpbHRlci0+YnVpbGRlcigpLT5jbGVhckVmZmVjdHMoKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0KKworICAgIHJldHVybiB0cnVlOwogfQogCi1TVkdSZXNvdXJjZSogU1ZH
RmlsdGVyRWxlbWVudDo6Y2FudmFzUmVzb3VyY2UoY29uc3QgUmVuZGVyT2JqZWN0KikKK1NWR1Jl
c291cmNlKiBTVkdGaWx0ZXJFbGVtZW50OjpjYW52YXNSZXNvdXJjZShjb25zdCBSZW5kZXJPYmpl
Y3QqIG9iamVjdCkKIHsKLSAgICBpZiAoIWF0dGFjaGVkKCkpCi0gICAgICAgIHJldHVybiAwOwor
ICAgIEFTU0VSVChvYmplY3QpOworCisgICAgaWYgKG1fZmlsdGVyLmNvbnRhaW5zKG9iamVjdCkp
CisgICAgICAgIHJldHVybiBtX2ZpbHRlci5nZXQob2JqZWN0KS5nZXQoKTsKKworICAgIFJlZlB0
cjxTVkdSZXNvdXJjZUZpbHRlcj4gZmlsdGVyID0gU1ZHUmVzb3VyY2VGaWx0ZXI6OmNyZWF0ZSh0
aGlzKTsKKyAgICBTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyUHRyID0gZmlsdGVyLmdldCgpOwor
ICAgIG1fZmlsdGVyLnNldChvYmplY3QsIGZpbHRlci5yZWxlYXNlKCkpOwogCi0gICAgaWYgKCFt
X2ZpbHRlcikKLSAgICAgICAgbV9maWx0ZXIgPSBTVkdSZXNvdXJjZUZpbHRlcjo6Y3JlYXRlKHRo
aXMpOwotICAgIHJldHVybiBtX2ZpbHRlci5nZXQoKTsKKyAgICByZXR1cm4gZmlsdGVyUHRyOwog
fQogCiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCShyZXZpc2lvbiA1MjY3MCkKKysrIFdl
YkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjks
OCBAQAogI2luY2x1ZGUgIlNWR0xhbmdTcGFjZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1l
bnQuaCIKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNzAsMTIgKzcyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
CiAKLSAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHUmVzb3VyY2VGaWx0ZXI+IG1fZmlsdGVyOwor
ICAgICAgICBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIFJlZlB0cjxTVkdSZXNvdXJjZUZp
bHRlcj4gPiBtX2ZpbHRlcjsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBT
VkdSZXNvdXJjZUZpbHRlcjsKICAgICAgICAgRmxvYXRSZWN0IGZpbHRlckJvdW5kaW5nQm94KGNv
bnN0IEZsb2F0UmVjdCYpIGNvbnN0OwotICAgICAgICB2b2lkIGJ1aWxkRmlsdGVyKGNvbnN0IEZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCkgY29uc3Q7CisgICAgICAgIGJvb2wgYnVpbGRGaWx0ZXJFZmZl
Y3RzKGNvbnN0IFJlbmRlck9iamVjdCopIGNvbnN0OwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gNTI2NzApCisrKyBXZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDAsNiArMTAwLDIwIEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGUKICAgICBmaWx0ZXJFZmZlY3QtPnNldEVmZmVjdEJvdW5kYXJpZXMoZWZmZWN0QkJveCk7CiB9
CiAKK3ZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjppbnZhbGlkYXRl
RmlsdGVyKCkKK3sKKyAgICBmb3IgKEhhc2hTZXQ8U1ZHUmVzb3VyY2VGaWx0ZXIqPjo6aXRlcmF0
b3IgaXQgPSBtX3Jlc291cmNlLmJlZ2luKCk7IGl0ICE9IG1fcmVzb3VyY2UuZW5kKCk7ICsraXQp
CisgICAgICAgICgqaXQpLT5pbnZhbGlkYXRlKCk7Cit9CisKK2Jvb2wgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpidWlsZChTVkdSZXNvdXJjZUZpbHRlciogZmlsdGVyUmVz
b3VyY2UpCit7CisgICAgaWYgKCFtX3Jlc291cmNlLmNvbnRhaW5zKGZpbHRlclJlc291cmNlKSkK
KyAgICAgICAgbV9yZXNvdXJjZS5hZGQoZmlsdGVyUmVzb3VyY2UpOworICAgIAorICAgIHJldHVy
biB0cnVlOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZHKQpJbmRleDogV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgJKHJldmlz
aW9uIDUyNjcwKQorKysgV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJTVkdO
YW1lcy5oIgogI2luY2x1ZGUgIlNWR1Jlc291cmNlRmlsdGVyLmgiCiAjaW5jbHVkZSAiU1ZHU3R5
bGVkRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMzcsNiArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGlj
OgogICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcygpOworCisgICAgICAgIHZvaWQgaW52YWxpZGF0ZUZpbHRl
cigpOwogICAgICAgICAKICAgICAgICAgdmlydHVhbCBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC01MCw2ICs1Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBzZXRTdGFuZGFyZEF0dHJpYnV0ZXMoU1ZHUmVzb3VyY2VGaWx0ZXIq
LCBGaWx0ZXJFZmZlY3QqKSBjb25zdDsKIAogICAgIHByaXZhdGU6CisgICAgICAgIG11dGFibGUg
SGFzaFNldDxTVkdSZXNvdXJjZUZpbHRlcio+IG1fcmVzb3VyY2U7CisKICAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcywgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzSWRlbnRpZmllciwgU1ZH
TmFtZXM6OnhBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFgsIHgpCiAgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMs
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlc0lkZW50aWZpZXIsIFNWR05hbWVz
Ojp5QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBZLCB5KQogICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXNJZGVudGlmaWVyLCBTVkdOYW1lczo6d2lk
dGhBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFdpZHRoLCB3aWR0aCkKSW5kZXg6IFdlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR1Jlc291cmNlRmlsdGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdSZXNvdXJjZUZpbHRlci5jcHAJKHJldmlzaW9uIDUyNjcwKQorKysgV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MCw2ICs2MCwxNyBAQCBTVkdSZXNvdXJjZUZpbHRlcjo6flNWR1Jlc291cmNlRmlsdGVyKCkK
IHsKIH0KIAordm9pZCBTVkdSZXNvdXJjZUZpbHRlcjo6aW52YWxpZGF0ZSgpCit7CisgICAgU1ZH
UmVzb3VyY2U6OmludmFsaWRhdGUoKTsKKyAgICBtX2ZpbHRlckJ1aWxkZXIuY2xlYXIoKTsKKyAg
ICBtX2ZpbHRlclJlY3QgPSBGbG9hdFJlY3QoKTsKKyAgICBtX2ZpbHRlckJCb3ggPSBGbG9hdFJl
Y3QoKTsKKyAgICBtX2ZpbHRlclJlc1NpemUgPSBGbG9hdFNpemUoKTsKKyAgICBtX3NhdmVkQ29u
dGV4dCA9IDA7CisgICAgbV9zb3VyY2VHcmFwaGljQnVmZmVyLmNsZWFyKCk7Cit9CisKIEZsb2F0
UmVjdCBTVkdSZXNvdXJjZUZpbHRlcjo6ZmlsdGVyQm91bmRpbmdCb3goY29uc3QgRmxvYXRSZWN0
JiBvYmIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fb3duZXJFbGVtZW50LT5maWx0ZXJCb3VuZGlu
Z0JveChvYmIpOwpAQCAtOTMsNyArMTA0LDcgQEAgYm9vbCBTVkdSZXNvdXJjZUZpbHRlcjo6Zml0
c0luTWF4aW11bUltYQogCiBib29sIFNWR1Jlc291cmNlRmlsdGVyOjpwcmVwYXJlRmlsdGVyKEdy
YXBoaWNzQ29udGV4dComIGNvbnRleHQsIGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0KQogewot
ICAgIG1fb3duZXJFbGVtZW50LT5idWlsZEZpbHRlcihvYmplY3QtPm9iamVjdEJvdW5kaW5nQm94
KCkpOworICAgIG1fb3duZXJFbGVtZW50LT5idWlsZEZpbHRlckVmZmVjdHMob2JqZWN0KTsKICAg
ICBjb25zdCBTVkdSZW5kZXJCYXNlKiByZW5kZXJlciA9IG9iamVjdC0+dG9TVkdSZW5kZXJCYXNl
KCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHUmVzb3VyY2VGaWx0ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdSZXNvdXJjZUZpbHRlci5oCShyZXZpc2lvbiA1MjY3MCkKKysr
IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR1Jlc291cmNlRmlsdGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNWR1Jlc291cmNlRmlsdGVy
KCk7CiAgICAgCiAgICAgdmlydHVhbCBTVkdSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlKCkgY29u
c3QgeyByZXR1cm4gRmlsdGVyUmVzb3VyY2VUeXBlOyB9CisgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGUoKTsKIAogICAgIHZvaWQgc2V0RmlsdGVyUmVzb2x1dGlvbihjb25zdCBGbG9hdFNpemUm
IGZpbHRlclJlc1NpemUpIHsgbV9maWx0ZXJSZXNTaXplID0gZmlsdGVyUmVzU2l6ZTsgfQogICAg
IHZvaWQgc2V0SGFzRmlsdGVyUmVzb2x1dGlvbihib29sIGZpbHRlclJlcykgeyBtX2ZpbHRlclJl
cyA9IGZpbHRlclJlczsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>