<?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>77545</bug_id>
          
          <creation_ts>2012-02-01 05:14:24 -0800</creation_ts>
          <short_desc>Make CSSMappedAttributeDeclaration have CSSMutableStyleDeclaration instead of being one</short_desc>
          <delta_ts>2012-02-03 09:39:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>
          
          <blocked>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547021</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-01 05:14:24 -0800</bug_when>
    <thetext>This is the easiest path for eliminating the last remaining subclass of CSSMutableStyleDeclaration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547028</commentid>
    <comment_count>1</comment_count>
      <attachid>124935</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-01 05:35:33 -0800</bug_when>
    <thetext>Created attachment 124935
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547034</commentid>
    <comment_count>2</comment_count>
      <attachid>124935</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-02-01 05:51:30 -0800</bug_when>
    <thetext>Comment on attachment 124935
patch

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

&gt; Source/WebCore/dom/CSSMappedAttributeDeclaration.h:73
&gt; +    RefPtr&lt;CSSMutableStyleDeclaration&gt; m_declaration;

Could this be a OwnPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547048</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-01 06:24:24 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Could this be a OwnPtr?

No.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547091</commentid>
    <comment_count>4</comment_count>
      <attachid>124935</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-01 08:21:42 -0800</bug_when>
    <thetext>Comment on attachment 124935
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547135</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-01 09:43:38 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/106471</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124935</attachid>
            <date>2012-02-01 05:35:33 -0800</date>
            <delta_ts>2012-02-01 08:21:42 -0800</delta_ts>
            <desc>patch</desc>
            <filename>cssattributestyledeclaration-base.patch</filename>
            <type>text/plain</type>
            <size>20303</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjQ2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYwIEBACisyMDEyLTAyLTAxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIENTU01hcHBlZEF0dHJp
YnV0ZURlY2xhcmF0aW9uIGhhdmUgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gaW5zdGVhZCBv
ZiBiZWluZyBvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc3NTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBpcyB0aGUgZWFzaWVzdCBwYXRoIGZvciBlbGltaW5hdGluZyB0aGUgbGFzdCByZW1h
aW5pbmcgc3ViY2xhc3Mgb2YgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uCisgICAgICAgIAor
ICAgICAgICBPbiBuZWdhdGl2ZSBzaWRlIHRoaXMgaW5jcmVhc2VzIG1lbW9yeSB1c2Ugb2YgQ1NT
TWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24gYnkgb25lIHB0ciBhbmQgcmVmY291bnQKKyAgICAg
ICAgKGl0IGxvc2VzIHRoZSB2cHRyKSBpbiB0b3RhbC4KKyAgICAgICAgCisgICAgICAgIFRoaXMg
aXMgbm90IG1lYW50IHRvIGJlIHRoZSBlbmQgc3RhdGUsIGp1c3QgYW4gaW50ZXJtZWRpYXRlIHJl
ZmFjdG9yaW5nIHN0ZXAuIENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uCisgICAgICAgIHNo
b3VsZCBjbGVhcmx5IGJlIHJlbmFtZWQgdG9vIGJ1dCB0aGlzIHBhdGNoIGRvZXNuJ3QgZG8gdGhh
dC4gSXQgbWlnaHQgbm90IGV4aXN0IGluIGl0cyBjdXJyZW50IGZvcm0KKyAgICAgICAgbXVjaCBs
b25nZXIuCisKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjptZXJnZSk6
CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmg6CisKKyAgICAgICAg
ICAgIFJlbW92ZSBwcm90ZWN0ZWQgc2VjdGlvbi4gTm8gc3ViY2xhc3NlcyByZW1haW4uICAgICAg
ICAKKyAgICAgICAgICAgIFJlbmFtZSBzZXRQcm9wZXJ0eUludGVybmFsKCkgdG8gc2V0UHJvcGVy
dHkoKS4gQWxsIHB1YmxpYyBtZXRob2RzIGhlcmUgYXJlIGludGVybmFsLgorICAgICAgICAKKyAg
ICAgICAgKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGVWYWx1ZSk6CisgICAgICAgICogZG9tL0F0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdHRyaWJ1dGU6OmNsb25lKToKKyAgICAgICAgKiBkb20vQXR0cmlidXRlLmg6CisgICAgICAg
IChBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6QXR0cmlidXRlOjpkZWNsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF0dHJpYnV0ZTo6bWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QXR0cmlidXRlOjpzZXRNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpBdHRyaWJ1dGU6OkF0dHJpYnV0ZSk6CisgICAgICAgICogZG9t
L0NTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uOjpzZXRNYXBwZWRJbWFnZVByb3BlcnR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uOjpzZXRNYXBwZWRQ
cm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlv
bjo6cmVtb3ZlTWFwcGVkUHJvcGVydHkpOgorICAgICAgICAqIGRvbS9DU1NNYXBwZWRBdHRyaWJ1
dGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb246OmRlY2xh
cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9u
OjpDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbik6CisgICAgICAgIAorICAgICAgICAgICAg
TWFrZSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiBhIG1lbWJlciBpbnN0ZWFkIG9mIHRoZSBi
YXNlIGNsYXNzLgorICAgICAgICAKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OnJlbW92ZUNTU1Byb3BlcnR5KToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmFkZENTU1Byb3BlcnR5KToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlZEVsZW1lbnQ6OmFkZENTU0ltYWdlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVkRWxlbWVudDo6YWRkQ1NTTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
ZEVsZW1lbnQ6OmFkZENTU0NvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6
OmNyZWF0ZU1hcHBlZERlY2wpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZEVsZW1lbnQ6OmdldFByZXNlbnRhdGlvbkF0dHJp
YnV0ZSk6CisKIDIwMTItMDItMDEgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW0luc3BlY3RvckluZGV4ZWREQl0gQWRkIHRl
c3RzIGZvciBkYXRhYmFzZSBuYW1lcyBhbmQgZGF0YWJhc2Ugc3RydWN0dXJlIHJlcXVlc3RzLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uY3BwCShyZXZpc2lvbiAxMDY0MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MDgsNyArNzA4LDcgQEAg
Ym9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcAogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eUludGVy
bmFsKGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSwgQ1NTUHJvcGVydHkqIHNsb3QpCit2b2lk
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0eShjb25zdCBDU1NQcm9wZXJ0
eSYgcHJvcGVydHksIENTU1Byb3BlcnR5KiBzbG90KQogewogI2lmIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpCiAgICAgU3R5bGVBdHRyaWJ1dGVNdXRhdGlvblNjb3BlIG11dGF0aW9uU2NvcGUo
dGhpcyk7CkBAIC03MzEsNyArNzMxLDcgQEAgdm9pZCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6c2V0UHJvcAogYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHko
aW50IHByb3BlcnR5SUQsIGludCB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgbm90aWZ5Q2hh
bmdlZCkKIHsKICAgICBDU1NQcm9wZXJ0eSBwcm9wZXJ0eShwcm9wZXJ0eUlELCBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZSksIGltcG9ydGFudCk7Ci0gICAgc2V0UHJv
cGVydHlJbnRlcm5hbChwcm9wZXJ0eSk7CisgICAgc2V0UHJvcGVydHkocHJvcGVydHkpOwogICAg
IGlmIChub3RpZnlDaGFuZ2VkKQogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAg
cmV0dXJuIHRydWU7CkBAIC03NDAsNyArNzQwLDcgQEAgYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbjo6c2V0UHJvcAogYm9vbCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJv
cGVydHkoaW50IHByb3BlcnR5SUQsIGRvdWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVu
aXRUeXBlcyB1bml0LCBib29sIGltcG9ydGFudCwgYm9vbCBub3RpZnlDaGFuZ2VkKQogewogICAg
IENTU1Byb3BlcnR5IHByb3BlcnR5KHByb3BlcnR5SUQsIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUodmFsdWUsIHVuaXQpLCBpbXBvcnRhbnQpOwotICAgIHNldFByb3BlcnR5SW50ZXJuYWwocHJv
cGVydHkpOworICAgIHNldFByb3BlcnR5KHByb3BlcnR5KTsKICAgICBpZiAobm90aWZ5Q2hhbmdl
ZCkKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIHJldHVybiB0cnVlOwpAQCAt
ODkyLDcgKzg5Miw3IEBAIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Om1lcmdlKGMK
ICAgICAgICAgaWYgKG9sZCkgewogICAgICAgICAgICAgaWYgKCFhcmdPdmVycmlkZXNPbkNvbmZs
aWN0ICYmIG9sZC0+dmFsdWUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIHNldFByb3BlcnR5SW50ZXJuYWwodG9NZXJnZSwgb2xkKTsKKyAgICAgICAgICAgIHNldFBy
b3BlcnR5KHRvTWVyZ2UsIG9sZCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9wcm9w
ZXJ0aWVzLmFwcGVuZCh0b01lcmdlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaAkocmV2aXNpb24gMTA2NDM1KQorKysg
U291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTczLDggKzczLDEwIEBAIHB1YmxpYzoKICAgICBib29sIHNldFByb3BlcnR5KGlu
dCBwcm9wZXJ0eUlELCBpbnQgdmFsdWUsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpIHsgcmV0dXJu
IHNldFByb3BlcnR5KHByb3BlcnR5SUQsIHZhbHVlLCBpbXBvcnRhbnQsIHRydWUpOyB9CiAgICAg
Ym9vbCBzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJZCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzIHVuaXQsIGJvb2wgaW1wb3J0YW50ID0gZmFsc2UpIHsgcmV0dXJu
IHNldFByb3BlcnR5KHByb3BlcnR5SWQsIHZhbHVlLCB1bml0LCBpbXBvcnRhbnQsIHRydWUpOyB9
CiAgICAgYm9vbCBzZXRQcm9wZXJ0eShpbnQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSwgYm9vbCBpbXBvcnRhbnQgPSBmYWxzZSkgeyByZXR1cm4gc2V0UHJvcGVydHkocHJvcGVydHlJ
RCwgdmFsdWUsIGltcG9ydGFudCwgdHJ1ZSk7IH0KLQorICAgIHZvaWQgc2V0UHJvcGVydHkoY29u
c3QgQ1NTUHJvcGVydHkmLCBDU1NQcm9wZXJ0eSogc2xvdCA9IDApOworICAgIAogICAgIHZvaWQg
cmVtb3ZlUHJvcGVydHkoaW50IHByb3BlcnR5SUQpIHsgcmVtb3ZlUHJvcGVydHkocHJvcGVydHlJ
RCwgdHJ1ZSwgZmFsc2UpOyB9CisgICAgU3RyaW5nIHJlbW92ZVByb3BlcnR5KGludCBwcm9wZXJ0
eUlELCBib29sIG5vdGlmeUNoYW5nZWQsIGJvb2wgcmV0dXJuVGV4dCk7CiAKICAgICAvLyBUaGUg
Zm9sbG93aW5nIHBhcnNlcyBhbiBlbnRpcmUgbmV3IHN0eWxlIGRlY2xhcmF0aW9uLgogICAgIHZv
aWQgcGFyc2VEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcmIHN0eWxlRGVjbGFyYXRpb24pOwpAQCAt
MTA1LDEzICsxMDcsOCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgYXNUZXh0KCkgY29uc3Q7CiAK
LXByb3RlY3RlZDoKLSAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpOwotCi0gICAgdm9p
ZCBzZXRQcm9wZXJ0eUludGVybmFsKGNvbnN0IENTU1Byb3BlcnR5JiwgQ1NTUHJvcGVydHkqIHNs
b3QgPSAwKTsKLSAgICBTdHJpbmcgcmVtb3ZlUHJvcGVydHkoaW50IHByb3BlcnR5SUQsIGJvb2wg
bm90aWZ5Q2hhbmdlZCwgYm9vbCByZXR1cm5UZXh0KTsKLQogcHJpdmF0ZToKKyAgICBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbigpOwogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKENT
U1J1bGUqIHBhcmVudFJ1bGUpOwogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKENTU1J1
bGUqIHBhcmVudFJ1bGUsIGNvbnN0IFZlY3RvcjxDU1NQcm9wZXJ0eT4mKTsKICAgICBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbihDU1NSdWxlKiBwYXJlbnRSdWxlLCBjb25zdCBDU1NQcm9wZXJ0
eSogY29uc3QgKiwgaW50IG51bVByb3BlcnRpZXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAJKHJldmlzaW9uIDEwNjQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODQsMTggKzQ4NCwxOCBAQCBzdGF0aWMgYm9vbCBwYXJz
ZVNpbXBsZUxlbmd0aFZhbHVlKENTU011CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ1NT
UGFyc2VyOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZVZhbHVlKENTU01hcHBlZEF0dHJpYnV0ZURlY2xh
cmF0aW9uKiBkZWNsYXJhdGlvbiwgU3R5bGVkRWxlbWVudCogZWxlbWVudCwgaW50IHByb3BlcnR5
SWQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCitib29sIENTU1BhcnNlcjo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGVWYWx1ZShDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbiogbWFwcGVkQXR0cmlidXRl
LCBTdHlsZWRFbGVtZW50KiBlbGVtZW50LCBpbnQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKLSAgICBBU1NFUlQoZGVjbGFyYXRpb24pOworICAgIEFTU0VSVChtYXBwZWRBdHRy
aWJ1dGUpOwogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQoZWxlbWVudC0+ZG9jdW1l
bnQoKSk7CiAgICAgQ1NTU3R5bGVTaGVldCogZWxlbWVudFNoZWV0ID0gZWxlbWVudC0+ZG9jdW1l
bnQoKS0+ZWxlbWVudFNoZWV0KCk7Ci0gICAgaWYgKHBhcnNlU2ltcGxlTGVuZ3RoVmFsdWUoZGVj
bGFyYXRpb24sIHByb3BlcnR5SWQsIHZhbHVlLCBmYWxzZSwgZmFsc2UsIGVsZW1lbnRTaGVldCkp
CisgICAgaWYgKHBhcnNlU2ltcGxlTGVuZ3RoVmFsdWUobWFwcGVkQXR0cmlidXRlLT5kZWNsYXJh
dGlvbigpLCBwcm9wZXJ0eUlkLCB2YWx1ZSwgZmFsc2UsIGZhbHNlLCBlbGVtZW50U2hlZXQpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAocGFyc2VDb2xvclZhbHVlKGRlY2xhcmF0aW9u
LCBwcm9wZXJ0eUlkLCB2YWx1ZSwgZmFsc2UsIGZhbHNlLCBlbGVtZW50U2hlZXQpKQorICAgIGlm
IChwYXJzZUNvbG9yVmFsdWUobWFwcGVkQXR0cmlidXRlLT5kZWNsYXJhdGlvbigpLCBwcm9wZXJ0
eUlkLCB2YWx1ZSwgZmFsc2UsIGZhbHNlLCBlbGVtZW50U2hlZXQpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBDU1NQYXJzZXIgcGFyc2VyKGZhbHNlKTsKLSAgICByZXR1cm4gcGFyc2VyLnBh
cnNlVmFsdWUoZGVjbGFyYXRpb24sIHByb3BlcnR5SWQsIHZhbHVlLCBmYWxzZSwgZWxlbWVudFNo
ZWV0KTsKKyAgICByZXR1cm4gcGFyc2VyLnBhcnNlVmFsdWUobWFwcGVkQXR0cmlidXRlLT5kZWNs
YXJhdGlvbigpLCBwcm9wZXJ0eUlkLCB2YWx1ZSwgZmFsc2UsIGVsZW1lbnRTaGVldCk7CiB9CiAK
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBk
ZWNsYXJhdGlvbiwgaW50IHByb3BlcnR5SWQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIGlt
cG9ydGFudCwgYm9vbCBzdHJpY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRlLmNwcAkocmV2
aXNpb24gMTA2NDM1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0F0dHJpYnV0ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIEF0dHJpYnV0ZUF0dHJNYXAmIGF0dHJp
YnV0ZUF0dHJNYQogCiBQYXNzUmVmUHRyPEF0dHJpYnV0ZT4gQXR0cmlidXRlOjpjbG9uZSgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdHRyaWJ1dGUobV9uYW1lLCBtX3ZhbHVl
LCBtX2lzTWFwcGVkQXR0cmlidXRlLCBtX3N0eWxlRGVjbC5nZXQoKSkpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQXR0cmlidXRlKG1fbmFtZSwgbV92YWx1ZSwgbV9pc01hcHBlZEF0dHJpYnV0
ZSwgbV9tYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbi5nZXQoKSkpOwogfQogCiBBdHRyKiBBdHRy
aWJ1dGU6OmF0dHIoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0F0dHJpYnV0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9BdHRyaWJ1dGUuaAkocmV2aXNpb24g
MTA2NDM1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0F0dHJpYnV0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC02OCw5ICs2OCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZS5pc0VtcHR5KCk7IH0KICAgICAKICAgICBQYXNzUmVmUHRyPEF0dHJpYnV0
ZT4gY2xvbmUoKSBjb25zdDsKKyAgICAKKyAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiog
ZGVjbCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24gPyBtX21h
cHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uLT5kZWNsYXJhdGlvbigpIDogMDsgfQogCi0gICAgQ1NT
TWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24qIGRlY2woKSBjb25zdCB7IHJldHVybiBtX3N0eWxl
RGVjbC5nZXQoKTsgfQotICAgIHZvaWQgc2V0RGVjbChQYXNzUmVmUHRyPENTU01hcHBlZEF0dHJp
YnV0ZURlY2xhcmF0aW9uPiBkZWNsKSB7IG1fc3R5bGVEZWNsID0gZGVjbDsgfQorICAgIENTU01h
cHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uKiBtYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fbWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24uZ2V0KCk7IH0KKyAgICB2
b2lkIHNldE1hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uKFBhc3NSZWZQdHI8Q1NTTWFwcGVkQXR0
cmlidXRlRGVjbGFyYXRpb24+IGRlY2wpIHsgbV9tYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbiA9
IGRlY2w7IH0KIAogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkg
eyBtX3ZhbHVlID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFByZWZpeChjb25zdCBBdG9taWNTdHJp
bmcmIHByZWZpeCkgeyBtX25hbWUuc2V0UHJlZml4KHByZWZpeCk7IH0KQEAgLTg4LDcgKzkwLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgLCBtX2hhc0F0dHIoZmFsc2UpCiAgICAgICAgICwgbV9uYW1l
KG5hbWUpCiAgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKLSAgICAgICAgLCBtX3N0eWxlRGVjbChz
dHlsZURlY2wpCisgICAgICAgICwgbV9tYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbihzdHlsZURl
Y2wpCiAgICAgewogICAgIH0KIApAQCAtOTcsNyArOTksNyBAQCBwcml2YXRlOgogICAgICAgICAs
IG1faGFzQXR0cihmYWxzZSkKICAgICAgICAgLCBtX25hbWUobnVsbEF0b20sIG5hbWUsIG51bGxB
dG9tKQogICAgICAgICAsIG1fdmFsdWUodmFsdWUpCi0gICAgICAgICwgbV9zdHlsZURlY2woc3R5
bGVEZWNsKQorICAgICAgICAsIG1fbWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24oc3R5bGVEZWNs
KQogICAgIHsKICAgICB9CiAKQEAgLTExMCw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIAogICAg
IFF1YWxpZmllZE5hbWUgbV9uYW1lOwogICAgIEF0b21pY1N0cmluZyBtX3ZhbHVlOwotICAgIFJl
ZlB0cjxDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbj4gbV9zdHlsZURlY2w7CisgICAgUmVm
UHRyPENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uPiBtX21hcHBlZEF0dHJpYnV0ZURlY2xh
cmF0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0NTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24uY3BwCShyZXZp
c2lvbiAxMDY0MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ1NTTWFwcGVkQXR0cmlidXRlRGVj
bGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIENTU01hcHBlZEF0
dHJpYnV0ZURlY2xhcmF0aW9uOjp+Q1NTTWFwcGUKIAogdm9pZCBDU1NNYXBwZWRBdHRyaWJ1dGVE
ZWNsYXJhdGlvbjo6c2V0TWFwcGVkSW1hZ2VQcm9wZXJ0eShTdHlsZWRFbGVtZW50KiBlbGVtZW50
LCBpbnQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgc2V0UHJvcGVydHlJ
bnRlcm5hbChDU1NQcm9wZXJ0eShwcm9wZXJ0eUlkLCBDU1NJbWFnZVZhbHVlOjpjcmVhdGUodXJs
KSkpOworICAgIG1fZGVjbGFyYXRpb24tPnNldFByb3BlcnR5KENTU1Byb3BlcnR5KHByb3BlcnR5
SWQsIENTU0ltYWdlVmFsdWU6OmNyZWF0ZSh1cmwpKSk7CiAgICAgc2V0TmVlZHNTdHlsZVJlY2Fs
YyhlbGVtZW50KTsKIH0KIApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENTU01hcHBlZEF0dHJpYnV0
ZURlY2xhcmF0aW9uOjpzZXRNCiB2b2lkIENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uOjpz
ZXRNYXBwZWRQcm9wZXJ0eShTdHlsZWRFbGVtZW50KiBlbGVtZW50LCBpbnQgcHJvcGVydHlJZCwg
aW50IHZhbHVlKQogewogICAgIEFTU0VSVChlbGVtZW50LT5kb2N1bWVudCgpKTsKLSAgICBzZXRQ
cm9wZXJ0eUludGVybmFsKENTU1Byb3BlcnR5KHByb3BlcnR5SWQsIGVsZW1lbnQtPmRvY3VtZW50
KCktPmNzc1ZhbHVlUG9vbCgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUpKSk7CisgICAg
bV9kZWNsYXJhdGlvbi0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHkocHJvcGVydHlJZCwgZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+Y3NzVmFsdWVQb29sKCktPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1
ZSkpKTsKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKGVsZW1lbnQpOwogfQogCkBAIC03NCw3ICs3
NCw3IEBAIHZvaWQgQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb246OnNldE0KIAogdm9pZCBD
U1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbjo6cmVtb3ZlTWFwcGVkUHJvcGVydHkoU3R5bGVk
RWxlbWVudCogZWxlbWVudCwgaW50IHByb3BlcnR5SWQpCiB7Ci0gICAgcmVtb3ZlUHJvcGVydHko
cHJvcGVydHlJZCwgZmFsc2UsIGZhbHNlKTsKKyAgICBtX2RlY2xhcmF0aW9uLT5yZW1vdmVQcm9w
ZXJ0eShwcm9wZXJ0eUlkLCBmYWxzZSwgZmFsc2UpOwogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMo
ZWxlbWVudCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DU1NNYXBwZWRBdHRyaWJ1
dGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DU1NNYXBw
ZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbi5oCShyZXZpc2lvbiAxMDY0MzUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzMsMTQgKzMzLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU3R5bGVkRWxl
bWVudDsKIAotY2xhc3MgQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24gOiBwdWJsaWMgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24geworY2xhc3MgQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFy
YXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbj4g
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU01hcHBlZEF0dHJpYnV0ZURlY2xh
cmF0aW9uPiBjcmVhdGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NN
YXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbik7CiAgICAgfQogCi0gICAgdmlydHVhbCB+Q1NTTWFw
cGVkQXR0cmlidXRlRGVjbGFyYXRpb24oKTsKKyAgICB+Q1NTTWFwcGVkQXR0cmlidXRlRGVjbGFy
YXRpb24oKTsKIAogICAgIHZvaWQgc2V0TWFwcGVkU3RhdGUoTWFwcGVkQXR0cmlidXRlRW50cnkg
dHlwZSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWwp
CiAgICAgewpAQCAtNTcsMTAgKzU3LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1hcHBlZExl
bmd0aFByb3BlcnR5KFN0eWxlZEVsZW1lbnQqLCBpbnQgcHJvcGVydHlJZCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSk7CiAKICAgICB2b2lkIHJlbW92ZU1hcHBlZFByb3BlcnR5KFN0eWxlZEVsZW1lbnQq
LCBpbnQgcHJvcGVydHlJZCk7CisgICAgCisgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24q
IGRlY2xhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZWNsYXJhdGlvbi5nZXQoKTsgfQogCiBw
cml2YXRlOgogICAgIENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uKCkKLSAgICAgICAgOiBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpCisgICAgICAgIDogbV9kZWNsYXJhdGlvbihDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCkpCiAgICAgICAgICwgbV9lbnRyeVR5cGUo
ZU5vbmUpCiAgICAgICAgICwgbV9hdHRyTmFtZShhbnlRTmFtZSgpKQogICAgIHsKQEAgLTY4LDYg
KzcwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0TmVlZHNTdHlsZVJlY2FsYyhTdHlsZWRF
bGVtZW50Kik7CiAKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IG1fZGVj
bGFyYXRpb247CiAgICAgTWFwcGVkQXR0cmlidXRlRW50cnkgbV9lbnRyeVR5cGU7CiAgICAgUXVh
bGlmaWVkTmFtZSBtX2F0dHJOYW1lOwogICAgIEF0b21pY1N0cmluZyBtX2F0dHJWYWx1ZTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJKHJldmlzaW9uIDEwNjQzNSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM3LDggKzEzNyw4IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChBdHQK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAKLSAgICBpZiAoYXR0ci0+ZGVjbCgpICYmICFwcmVz
ZXJ2ZURlY2xzKSB7Ci0gICAgICAgIGF0dHItPnNldERlY2woMCk7CisgICAgaWYgKGF0dHItPm1h
cHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uKCkgJiYgIXByZXNlcnZlRGVjbHMpIHsKKyAgICAgICAg
YXR0ci0+c2V0TWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24oMCk7CiAgICAgICAgIHNldE5lZWRz
U3R5bGVSZWNhbGMoKTsKICAgICB9CiAKQEAgLTE0NiwxNCArMTQ2LDE0IEBAIHZvaWQgU3R5bGVk
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChBdHQKICAgICBNYXBwZWRBdHRyaWJ1dGVFbnRyeSBl
bnRyeTsKICAgICBib29sIG5lZWRUb1BhcnNlID0gbWFwVG9FbnRyeShhdHRyLT5uYW1lKCksIGVu
dHJ5KTsKICAgICBpZiAocHJlc2VydmVEZWNscykgewotICAgICAgICBpZiAoYXR0ci0+ZGVjbCgp
KSB7CisgICAgICAgIGlmIChhdHRyLT5tYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbigpKSB7CiAg
ICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgICAgICAgICBjaGVja0RlY2wg
PSBmYWxzZTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAoIWF0dHItPmlzTnVsbCgpICYmIGVu
dHJ5ICE9IGVOb25lKSB7CiAgICAgICAgIENTU01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uKiBk
ZWNsID0gZ2V0TWFwcGVkQXR0cmlidXRlRGVjbChlbnRyeSwgYXR0cik7CiAgICAgICAgIGlmIChk
ZWNsKSB7Ci0gICAgICAgICAgICBhdHRyLT5zZXREZWNsKGRlY2wpOworICAgICAgICAgICAgYXR0
ci0+c2V0TWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24oZGVjbCk7CiAgICAgICAgICAgICBzZXRO
ZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgICAgICAgICBjaGVja0RlY2wgPSBmYWxzZTsKICAgICAg
ICAgfSBlbHNlCkBAIC0xNzEsMTAgKzE3MSwxMCBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQoQXR0CiAgICAgaWYgKGVudHJ5ID09IGVOb25lKQogICAgICAgICByZWNhbGNT
dHlsZUlmTmVlZGVkQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKGF0dHIpOwogCi0gICAgaWYgKGNoZWNr
RGVjbCAmJiBhdHRyLT5kZWNsKCkpIHsKKyAgICBpZiAoY2hlY2tEZWNsICYmIGF0dHItPm1hcHBl
ZEF0dHJpYnV0ZURlY2xhcmF0aW9uKCkpIHsKICAgICAgICAgLy8gQWRkIHRoZSBkZWNsIHRvIHRo
ZSB0YWJsZSBpbiB0aGUgYXBwcm9wcmlhdGUgc3BvdC4KLSAgICAgICAgc2V0TWFwcGVkQXR0cmli
dXRlRGVjbChlbnRyeSwgYXR0ciwgYXR0ci0+ZGVjbCgpKTsKLSAgICAgICAgYXR0ci0+ZGVjbCgp
LT5zZXRNYXBwZWRTdGF0ZShlbnRyeSwgYXR0ci0+bmFtZSgpLCBhdHRyLT52YWx1ZSgpKTsKKyAg
ICAgICAgc2V0TWFwcGVkQXR0cmlidXRlRGVjbChlbnRyeSwgYXR0ciwgYXR0ci0+bWFwcGVkQXR0
cmlidXRlRGVjbGFyYXRpb24oKSk7CisgICAgICAgIGF0dHItPm1hcHBlZEF0dHJpYnV0ZURlY2xh
cmF0aW9uKCktPnNldE1hcHBlZFN0YXRlKGVudHJ5LCBhdHRyLT5uYW1lKCksIGF0dHItPnZhbHVl
KCkpOwogICAgIH0KIAogICAgIHVwZGF0ZUFmdGVyQXR0cmlidXRlQ2hhbmdlZChhdHRyKTsKQEAg
LTIyOCwzNyArMjI4LDM3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUKIAogdm9pZCBTdHlsZWRFbGVtZW50OjpyZW1vdmVDU1NQcm9wZXJ0eShBdHRyaWJ1dGUqIGF0
dHJpYnV0ZSwgaW50IGlkKQogewotICAgIGlmICghYXR0cmlidXRlLT5kZWNsKCkpCisgICAgaWYg
KCFhdHRyaWJ1dGUtPm1hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uKCkpCiAgICAgICAgIGNyZWF0
ZU1hcHBlZERlY2woYXR0cmlidXRlKTsKLSAgICBhdHRyaWJ1dGUtPmRlY2woKS0+cmVtb3ZlTWFw
cGVkUHJvcGVydHkodGhpcywgaWQpOworICAgIGF0dHJpYnV0ZS0+bWFwcGVkQXR0cmlidXRlRGVj
bGFyYXRpb24oKS0+cmVtb3ZlTWFwcGVkUHJvcGVydHkodGhpcywgaWQpOwogfQogCiB2b2lkIFN0
eWxlZEVsZW1lbnQ6OmFkZENTU1Byb3BlcnR5KEF0dHJpYnV0ZSogYXR0cmlidXRlLCBpbnQgaWQs
IGNvbnN0IFN0cmluZyAmdmFsdWUpCiB7Ci0gICAgaWYgKCFhdHRyaWJ1dGUtPmRlY2woKSkKKyAg
ICBpZiAoIWF0dHJpYnV0ZS0+bWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24oKSkKICAgICAgICAg
Y3JlYXRlTWFwcGVkRGVjbChhdHRyaWJ1dGUpOwotICAgIGF0dHJpYnV0ZS0+ZGVjbCgpLT5zZXRN
YXBwZWRQcm9wZXJ0eSh0aGlzLCBpZCwgdmFsdWUpOworICAgIGF0dHJpYnV0ZS0+bWFwcGVkQXR0
cmlidXRlRGVjbGFyYXRpb24oKS0+c2V0TWFwcGVkUHJvcGVydHkodGhpcywgaWQsIHZhbHVlKTsK
IH0KIAogdm9pZCBTdHlsZWRFbGVtZW50OjphZGRDU1NQcm9wZXJ0eShBdHRyaWJ1dGUqIGF0dHJp
YnV0ZSwgaW50IGlkLCBpbnQgdmFsdWUpCiB7Ci0gICAgaWYgKCFhdHRyaWJ1dGUtPmRlY2woKSkK
KyAgICBpZiAoIWF0dHJpYnV0ZS0+bWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24oKSkKICAgICAg
ICAgY3JlYXRlTWFwcGVkRGVjbChhdHRyaWJ1dGUpOwotICAgIGF0dHJpYnV0ZS0+ZGVjbCgpLT5z
ZXRNYXBwZWRQcm9wZXJ0eSh0aGlzLCBpZCwgdmFsdWUpOworICAgIGF0dHJpYnV0ZS0+bWFwcGVk
QXR0cmlidXRlRGVjbGFyYXRpb24oKS0+c2V0TWFwcGVkUHJvcGVydHkodGhpcywgaWQsIHZhbHVl
KTsKIH0KIAogdm9pZCBTdHlsZWRFbGVtZW50OjphZGRDU1NJbWFnZVByb3BlcnR5KEF0dHJpYnV0
ZSogYXR0cmlidXRlLCBpbnQgaWQsIGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIGlmICghYXR0
cmlidXRlLT5kZWNsKCkpCisgICAgaWYgKCFhdHRyaWJ1dGUtPm1hcHBlZEF0dHJpYnV0ZURlY2xh
cmF0aW9uKCkpCiAgICAgICAgIGNyZWF0ZU1hcHBlZERlY2woYXR0cmlidXRlKTsKLSAgICBhdHRy
aWJ1dGUtPmRlY2woKS0+c2V0TWFwcGVkSW1hZ2VQcm9wZXJ0eSh0aGlzLCBpZCwgdXJsKTsKKyAg
ICBhdHRyaWJ1dGUtPm1hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uKCktPnNldE1hcHBlZEltYWdl
UHJvcGVydHkodGhpcywgaWQsIHVybCk7CiB9CiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6YWRkQ1NT
TGVuZ3RoKEF0dHJpYnV0ZSogYXR0cmlidXRlLCBpbnQgaWQsIGNvbnN0IFN0cmluZyAmdmFsdWUp
CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBzcGluIHVwIHRoZSBD
U1MgcGFyc2VyLCBidXQgc2hvdWxkIGluc3RlYWQganVzdCBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0
CiAgICAgLy8gbGVuZ3RoIHVuaXQgYW5kIG1ha2UgdGhlIGFwcHJvcHJpYXRlIHBhcnNlZCB2YWx1
ZS4KLSAgICBpZiAoIWF0dHJpYnV0ZS0+ZGVjbCgpKQorICAgIGlmICghYXR0cmlidXRlLT5tYXBw
ZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbigpKQogICAgICAgICBjcmVhdGVNYXBwZWREZWNsKGF0dHJp
YnV0ZSk7CiAKICAgICAvLyBzdHJpcCBhdHRyaWJ1dGUgZ2FyYmFnZS4uCkBAIC0yODIsMTIgKzI4
MiwxMiBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZENTU0xlbmd0aChBdHRyaWJ1CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAobCAhPSB2LT5sZW5ndGgoKSkgewotICAgICAgICAgICAgYXR0cmli
dXRlLT5kZWNsKCktPnNldE1hcHBlZExlbmd0aFByb3BlcnR5KHRoaXMsIGlkLCB2LT5zdWJzdHJp
bmcoMCwgbCkpOworICAgICAgICAgICAgYXR0cmlidXRlLT5tYXBwZWRBdHRyaWJ1dGVEZWNsYXJh
dGlvbigpLT5zZXRNYXBwZWRMZW5ndGhQcm9wZXJ0eSh0aGlzLCBpZCwgdi0+c3Vic3RyaW5nKDAs
IGwpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAotICAgIGF0dHJp
YnV0ZS0+ZGVjbCgpLT5zZXRNYXBwZWRMZW5ndGhQcm9wZXJ0eSh0aGlzLCBpZCwgdmFsdWUpOwor
ICAgIGF0dHJpYnV0ZS0+bWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24oKS0+c2V0TWFwcGVkTGVu
Z3RoUHJvcGVydHkodGhpcywgaWQsIHZhbHVlKTsKIH0KIAogc3RhdGljIFN0cmluZyBwYXJzZUNv
bG9yU3RyaW5nV2l0aENyYXp5TGVnYWN5UnVsZXMoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZykK
QEAgLTM1NSwyNCArMzU1LDI0IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6YWRkQ1NTQ29sb3IoQXR0
cmlidXQKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoY29sb3JTdHJpbmcsICJ0cmFuc3BhcmVu
dCIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWF0dHJpYnV0ZS0+ZGVjbCgpKQorICAg
IGlmICghYXR0cmlidXRlLT5tYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbigpKQogICAgICAgICBj
cmVhdGVNYXBwZWREZWNsKGF0dHJpYnV0ZSk7CiAKICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGEg
bmFtZWQgQ1NTIGNvbG9yIG9yIGEgMy82LWRpZ2l0IGhleCBjb2xvciwgdXNlIHRoYXQuCiAgICAg
Q29sb3IgcGFyc2VkQ29sb3IoY29sb3JTdHJpbmcpOwogICAgIGlmIChwYXJzZWRDb2xvci5pc1Zh
bGlkKCkpIHsKLSAgICAgICAgYXR0cmlidXRlLT5kZWNsKCktPnNldE1hcHBlZFByb3BlcnR5KHRo
aXMsIGlkLCBjb2xvclN0cmluZyk7CisgICAgICAgIGF0dHJpYnV0ZS0+bWFwcGVkQXR0cmlidXRl
RGVjbGFyYXRpb24oKS0+c2V0TWFwcGVkUHJvcGVydHkodGhpcywgaWQsIGNvbG9yU3RyaW5nKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF0dHJpYnV0ZS0+ZGVjbCgpLT5zZXRNYXBw
ZWRQcm9wZXJ0eSh0aGlzLCBpZCwgcGFyc2VDb2xvclN0cmluZ1dpdGhDcmF6eUxlZ2FjeVJ1bGVz
KGNvbG9yU3RyaW5nKSk7CisgICAgYXR0cmlidXRlLT5tYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlv
bigpLT5zZXRNYXBwZWRQcm9wZXJ0eSh0aGlzLCBpZCwgcGFyc2VDb2xvclN0cmluZ1dpdGhDcmF6
eUxlZ2FjeVJ1bGVzKGNvbG9yU3RyaW5nKSk7CiB9CiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6Y3Jl
YXRlTWFwcGVkRGVjbChBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgUmVmUHRyPENTU01hcHBlZEF0
dHJpYnV0ZURlY2xhcmF0aW9uPiBkZWNsID0gQ1NTTWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb246
OmNyZWF0ZSgpOwotICAgIGF0dHItPnNldERlY2woZGVjbCk7Ci0gICAgQVNTRVJUKCFkZWNsLT51
c2VTdHJpY3RQYXJzaW5nKCkpOworICAgIGF0dHItPnNldE1hcHBlZEF0dHJpYnV0ZURlY2xhcmF0
aW9uKGRlY2wpOworICAgIEFTU0VSVCghZGVjbC0+ZGVjbGFyYXRpb24oKS0+dXNlU3RyaWN0UGFy
c2luZygpKTsKIH0KIAogdW5zaWduZWQgTWFwcGVkQXR0cmlidXRlSGFzaDo6aGFzaChjb25zdCBN
YXBwZWRBdHRyaWJ1dGVLZXkmIGtleSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZWRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVk
RWxlbWVudC5jcHAJKHJldmlzaW9uIDEwNjQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHlsZWRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIyLDcgKzQyMiw3IEBAIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IFNWR1N0eWxlZEVsZW1lbnQ6OmcKIAogICAgIFF1YWxpZmllZE5hbWUg
YXR0cmlidXRlTmFtZShudWxsQXRvbSwgbmFtZSwgbnVsbEF0b20pOwogICAgIEF0dHJpYnV0ZSog
YXR0ciA9IGF0dHJpYnV0ZU1hcCgpLT5nZXRBdHRyaWJ1dGVJdGVtKGF0dHJpYnV0ZU5hbWUpOwot
ICAgIGlmICghYXR0ciB8fCAhYXR0ci0+aXNNYXBwZWRBdHRyaWJ1dGUoKSB8fCAhYXR0ci0+ZGVj
bCgpKQorICAgIGlmICghYXR0ciB8fCAhYXR0ci0+aXNNYXBwZWRBdHRyaWJ1dGUoKSB8fCAhYXR0
ci0+bWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb24oKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBBdHRyaWJ1dGUqIGNzc1NWR0F0dHIgPSBhdHRyOwpAQCAtNDMyLDggKzQzMiw4IEBAIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IFNWR1N0eWxlZEVsZW1lbnQ6OmcKICAgICAvLyBiZWZvcmUgcmV0dXJu
aW5nIHNvIHRoYXQgYW55IG1vZGlmaWNhdGlvbnMgdG8gdGhlIENTU1ZhbHVlIHdpbGwgbm90IGFm
ZmVjdCBvdGhlciBhdHRyaWJ1dGVzLgogICAgIE1hcHBlZEF0dHJpYnV0ZUVudHJ5IGVudHJ5Owog
ICAgIG1hcFRvRW50cnkoYXR0cmlidXRlTmFtZSwgZW50cnkpOwotICAgIGlmIChnZXRNYXBwZWRB
dHRyaWJ1dGVEZWNsKGVudHJ5LCBjc3NTVkdBdHRyKSA9PSBjc3NTVkdBdHRyLT5kZWNsKCkpIHsK
LSAgICAgICAgY3NzU1ZHQXR0ci0+c2V0RGVjbCgwKTsKKyAgICBpZiAoZ2V0TWFwcGVkQXR0cmli
dXRlRGVjbChlbnRyeSwgY3NzU1ZHQXR0cikgPT0gY3NzU1ZHQXR0ci0+bWFwcGVkQXR0cmlidXRl
RGVjbGFyYXRpb24oKSkgeworICAgICAgICBjc3NTVkdBdHRyLT5zZXRNYXBwZWRBdHRyaWJ1dGVE
ZWNsYXJhdGlvbigwKTsKICAgICAgICAgaW50IHByb3BJZCA9IFNWR1N0eWxlZEVsZW1lbnQ6OmNz
c1Byb3BlcnR5SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKGNzc1NWR0F0dHItPm5hbWUoKSk7CiAgICAg
ICAgIGFkZENTU1Byb3BlcnR5KGNzc1NWR0F0dHIsIHByb3BJZCwgY3NzU1ZHQXR0ci0+dmFsdWUo
KSk7CiAgICAgfQo=
</data>
<flag name="review"
          id="126317"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>