<?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>114592</bug_id>
          
          <creation_ts>2013-04-14 11:12:16 -0700</creation_ts>
          <short_desc>Move StylePropertySet internal storage access helpers to subclass.</short_desc>
          <delta_ts>2013-04-14 12:08:49 -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>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>114568</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>875382</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 11:12:16 -0700</bug_when>
    <thetext>Move StylePropertySet internal storage access helpers to subclass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875383</commentid>
    <comment_count>1</comment_count>
      <attachid>198005</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 11:13:00 -0700</bug_when>
    <thetext>Created attachment 198005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875387</commentid>
    <comment_count>2</comment_count>
      <attachid>198005</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-14 12:06:38 -0700</bug_when>
    <thetext>Comment on attachment 198005
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875388</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-14 12:08:49 -0700</bug_when>
    <thetext>Committed r148406: &lt;http://trac.webkit.org/changeset/148406&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198005</attachid>
            <date>2013-04-14 11:13:00 -0700</date>
            <delta_ts>2013-04-14 12:06:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114592.diff</filename>
            <type>text/plain</type>
            <size>16143</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYmEwZDZmLi4yNjc4ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDQg
QEAKIDIwMTMtMDQtMTQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIE1vdmUgU3R5bGVQcm9wZXJ0eVNldCBpbnRlcm5hbCBzdG9yYWdlIGFjY2VzcyBoZWxwZXJz
IHRvIHN1YmNsYXNzLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTQ1OTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBtdXRh
YmxlUHJvcGVydHlWZWN0b3IoKSBzaW5jZSBhbGwgY2FsbCBzaXRlcyBhcmUgaW5zaWRlIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0CisgICAgICAgIGFuZCBjYW4gYWNjZXNzIG1fcHJvcGVydHlWZWN0
b3IgZGlyZWN0bHkuCisKKyAgICAgICAgRm9yIEltbXV0YWJsZVN0eWxlUHJvcGVydHlTZXQsIG1v
dmVkIHZhbHVlL21ldGFkYXRhIGFycmF5IGFjY2Vzc29ycyB0byB0aGUgc3ViY2xhc3MKKyAgICAg
ICAgYW5kIHJlbW92ZSAiaW1tdXRhYmxlIiBmcm9tIHRoZWlyIG5hbWVzLgorCisgICAgICAgICog
Y3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0
eVNldDo6aW1tdXRhYmxlQ29weUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkltbXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQ6OkltbXV0YWJsZVN0eWxlUHJvcGVydHlTZXQpOgorICAgICAgICAo
V2ViQ29yZTo6SW1tdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6fkltbXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6Ok11dGFi
bGVTdHlsZVByb3BlcnR5U2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVByb3Bl
cnR5U2V0OjpyZW1vdmVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldDo6cmVtb3ZlUHJlZml4ZWRPclVucHJlZml4ZWRQcm9wZXJ0eSk6CisgICAgICAg
IChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6c2V0UHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OmFwcGVuZFByZWZpeGluZ1Zhcmlh
bnRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6
cGFyc2VEZWNsYXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldDo6YWRkUGFyc2VkUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQ6OnJlbW92ZVByb3BlcnRpZXNJblNldCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldDo6ZmluZENTU1Byb3BlcnR5V2l0aElEKToKKyAgICAgICAgKFdl
YkNvcmU6Ok11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVFcXVpdmFsZW50UHJvcGVydGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0OjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuaDoKKyAgICAgICAgKFByb3BlcnR5
UmVmZXJlbmNlKToKKyAgICAgICAgKFN0eWxlUHJvcGVydHlTZXQpOgorICAgICAgICAoSW1tdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbW11dGFibGVTdHlsZVBy
b3BlcnR5U2V0Ojp2YWx1ZUFycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OkltbXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ6Om1ldGFkYXRhQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0eVNldDo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5TWV0YWRhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5VmFs
dWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6cHJvcGVydHlDb3VudCk6
CisKKzIwMTMtMDQtMTQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCiAgICAg
ICAgIFNwZWNpYWxpemUgcHJvcGVydHlDb3VudCgpIGluIFN0eWxlUHJvcGVydHlTZXQgc3ViY2xh
c3Nlcy4KICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE0NTkwPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKaW5kZXggZWYzNDIxZS4uY2Q1ZmM4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcApAQCAtNzgsNyArNzgsOCBAQCBQYXNz
UmVmUHRyPEltbXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ+IFN0eWxlUHJvcGVydHlTZXQ6OmltbXV0
YWJsZUNvcHlJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFpc011dGFibGUoKSkKICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEltbXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPihjb25zdF9jYXN0PFN0
eWxlUHJvcGVydHlTZXQqPih0aGlzKSk7Ci0gICAgcmV0dXJuIEltbXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQ6OmNyZWF0ZShtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5kYXRhKCksIG11dGFibGVQcm9w
ZXJ0eVZlY3RvcigpLnNpemUoKSwgY3NzUGFyc2VyTW9kZSgpKTsKKyAgICBjb25zdCBNdXRhYmxl
U3R5bGVQcm9wZXJ0eVNldCogbXV0YWJsZVRoaXMgPSBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxl
U3R5bGVQcm9wZXJ0eVNldCo+KHRoaXMpOworICAgIHJldHVybiBJbW11dGFibGVTdHlsZVByb3Bl
cnR5U2V0OjpjcmVhdGUobXV0YWJsZVRoaXMtPm1fcHJvcGVydHlWZWN0b3IuZGF0YSgpLCBtdXRh
YmxlVGhpcy0+bV9wcm9wZXJ0eVZlY3Rvci5zaXplKCksIGNzc1BhcnNlck1vZGUoKSk7CiB9CiAK
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldChjb25zdCBD
U1NQcm9wZXJ0eSogcHJvcGVydGllcywgdW5zaWduZWQgbGVuZ3RoKQpAQCAtOTIsOCArOTMsOCBA
QCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQoY29uc3Qg
Q1NTUHJvcGVydHkqIHByb3BlcnRpZXMsCiBJbW11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpJbW11
dGFibGVTdHlsZVByb3BlcnR5U2V0KGNvbnN0IENTU1Byb3BlcnR5KiBwcm9wZXJ0aWVzLCB1bnNp
Z25lZCBsZW5ndGgsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSkKICAgICA6IFN0eWxlUHJv
cGVydHlTZXQoY3NzUGFyc2VyTW9kZSwgbGVuZ3RoKQogewotICAgIFN0eWxlUHJvcGVydHlNZXRh
ZGF0YSogbWV0YWRhdGFBcnJheSA9IGNvbnN0X2Nhc3Q8U3R5bGVQcm9wZXJ0eU1ldGFkYXRhKj4o
aW1tdXRhYmxlTWV0YWRhdGFBcnJheSgpKTsKLSAgICBDU1NWYWx1ZSoqIHZhbHVlQXJyYXkgPSBj
b25zdF9jYXN0PENTU1ZhbHVlKio+KGltbXV0YWJsZVZhbHVlQXJyYXkoKSk7CisgICAgU3R5bGVQ
cm9wZXJ0eU1ldGFkYXRhKiBtZXRhZGF0YUFycmF5ID0gY29uc3RfY2FzdDxTdHlsZVByb3BlcnR5
TWV0YWRhdGEqPih0aGlzLT5tZXRhZGF0YUFycmF5KCkpOworICAgIENTU1ZhbHVlKiogdmFsdWVB
cnJheSA9IGNvbnN0X2Nhc3Q8Q1NTVmFsdWUqKj4odGhpcy0+dmFsdWVBcnJheSgpKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgbWV0YWRhdGFB
cnJheVtpXSA9IHByb3BlcnRpZXNbaV0ubWV0YWRhdGEoKTsKICAgICAgICAgdmFsdWVBcnJheVtp
XSA9IHByb3BlcnRpZXNbaV0udmFsdWUoKTsKQEAgLTEwMyw3ICsxMDQsNyBAQCBJbW11dGFibGVT
dHlsZVByb3BlcnR5U2V0OjpJbW11dGFibGVTdHlsZVByb3BlcnR5U2V0KGNvbnN0IENTU1Byb3Bl
cnR5KiBwcm9wZXJ0aQogCiBJbW11dGFibGVTdHlsZVByb3BlcnR5U2V0Ojp+SW1tdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldCgpCiB7Ci0gICAgQ1NTVmFsdWUqKiB2YWx1ZUFycmF5ID0gY29uc3RfY2Fz
dDxDU1NWYWx1ZSoqPihpbW11dGFibGVWYWx1ZUFycmF5KCkpOworICAgIENTU1ZhbHVlKiogdmFs
dWVBcnJheSA9IGNvbnN0X2Nhc3Q8Q1NTVmFsdWUqKj4odGhpcy0+dmFsdWVBcnJheSgpKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hcnJheVNpemU7ICsraSkKICAgICAgICAgdmFs
dWVBcnJheVtpXS0+ZGVyZWYoKTsKIH0KQEAgLTExMiw3ICsxMTMsNyBAQCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldDo6TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQoY29uc3QgU3R5bGVQcm9wZXJ0eVNl
dCYgb3RoZXIpCiAgICAgOiBTdHlsZVByb3BlcnR5U2V0KG90aGVyLmNzc1BhcnNlck1vZGUoKSkK
IHsKICAgICBpZiAob3RoZXIuaXNNdXRhYmxlKCkpCi0gICAgICAgIG1fcHJvcGVydHlWZWN0b3Ig
PSBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCY+KG90aGVyKS5tdXRh
YmxlUHJvcGVydHlWZWN0b3IoKTsKKyAgICAgICAgbV9wcm9wZXJ0eVZlY3RvciA9IHN0YXRpY19j
YXN0PGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnR5U2V0Jj4ob3RoZXIpLm1fcHJvcGVydHlWZWN0
b3I7CiAgICAgZWxzZSB7CiAgICAgICAgIG1fcHJvcGVydHlWZWN0b3IucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShvdGhlci5wcm9wZXJ0eUNvdW50KCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgb3RoZXIucHJvcGVydHlDb3VudCgpOyArK2kpCkBAIC02MjYsNyArNjI3LDcgQEAg
Ym9vbCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6cmVtb3ZlUHJvcGVydHkoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlELCBTdHJpbmcqIHIKIAogICAgIC8vIEEgbW9yZSBlZmZpY2llbnQgcmVtb3Zh
bCBzdHJhdGVneSB3b3VsZCBpbnZvbHZlIG1hcmtpbmcgZW50cmllcyBhcyBlbXB0eQogICAgIC8v
IGFuZCBzd2VlcGluZyB0aGVtIHdoZW4gdGhlIHZlY3RvciBncm93cyB0b28gYmlnLgotICAgIG11
dGFibGVQcm9wZXJ0eVZlY3RvcigpLnJlbW92ZShmb3VuZFByb3BlcnR5SW5kZXgpOworICAgIG1f
cHJvcGVydHlWZWN0b3IucmVtb3ZlKGZvdW5kUHJvcGVydHlJbmRleCk7CiAKICAgICByZW1vdmVQ
cmVmaXhlZE9yVW5wcmVmaXhlZFByb3BlcnR5KHByb3BlcnR5SUQpOwogCkBAIC02MzgsNyArNjM5
LDcgQEAgdm9pZCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6cmVtb3ZlUHJlZml4ZWRPclVucHJl
Zml4ZWRQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHAKICAgICBpbnQgZm91bmRQcm9wZXJ0eUluZGV4
ID0gZmluZFByb3BlcnR5SW5kZXgocHJlZml4aW5nVmFyaWFudEZvclByb3BlcnR5SWQocHJvcGVy
dHlJRCkpOwogICAgIGlmIChmb3VuZFByb3BlcnR5SW5kZXggPT0gLTEpCiAgICAgICAgIHJldHVy
bjsKLSAgICBtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5yZW1vdmUoZm91bmRQcm9wZXJ0eUluZGV4
KTsKKyAgICBtX3Byb3BlcnR5VmVjdG9yLnJlbW92ZShmb3VuZFByb3BlcnR5SW5kZXgpOwogfQog
CiBib29sIFN0eWxlUHJvcGVydHlTZXQ6OnByb3BlcnR5SXNJbXBvcnRhbnQoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlEKSBjb25zdApAQCAtNzAwLDcgKzcwMSw3IEBAIHZvaWQgTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ6OnNldFByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgUGFzc1Jl
ZlB0cjxDCiAKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gcHJwVmFsdWU7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHNob3J0aGFuZC5sZW5ndGgoKTsgKytpKQotICAgICAgICBt
dXRhYmxlUHJvcGVydHlWZWN0b3IoKS5hcHBlbmQoQ1NTUHJvcGVydHkoc2hvcnRoYW5kLnByb3Bl
cnRpZXMoKVtpXSwgdmFsdWUsIGltcG9ydGFudCkpOworICAgICAgICBtX3Byb3BlcnR5VmVjdG9y
LmFwcGVuZChDU1NQcm9wZXJ0eShzaG9ydGhhbmQucHJvcGVydGllcygpW2ldLCB2YWx1ZSwgaW1w
b3J0YW50KSk7CiB9CiAKIHZvaWQgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OnNldFByb3BlcnR5
KGNvbnN0IENTU1Byb3BlcnR5JiBwcm9wZXJ0eSwgQ1NTUHJvcGVydHkqIHNsb3QpCkBAIC03MTgs
MTEgKzcxOSwxMSBAQCB2b2lkIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpzZXRQcm9wZXJ0eShj
b25zdCBDU1NQcm9wZXJ0eSYgcHJvcGVydHksIENTU1Byb3BlcgogCiB2b2lkIE11dGFibGVTdHls
ZVByb3BlcnR5U2V0OjphcHBlbmRQcmVmaXhpbmdWYXJpYW50UHJvcGVydHkoY29uc3QgQ1NTUHJv
cGVydHkmIHByb3BlcnR5KQogewotICAgIG11dGFibGVQcm9wZXJ0eVZlY3RvcigpLmFwcGVuZChw
cm9wZXJ0eSk7CisgICAgbV9wcm9wZXJ0eVZlY3Rvci5hcHBlbmQocHJvcGVydHkpOwogICAgIENT
U1Byb3BlcnR5SUQgcHJlZml4aW5nVmFyaWFudCA9IHByZWZpeGluZ1ZhcmlhbnRGb3JQcm9wZXJ0
eUlkKHByb3BlcnR5LmlkKCkpOwogICAgIGlmIChwcmVmaXhpbmdWYXJpYW50ID09IHByb3BlcnR5
LmlkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5hcHBl
bmQoQ1NTUHJvcGVydHkocHJlZml4aW5nVmFyaWFudCwgcHJvcGVydHkudmFsdWUoKSwgcHJvcGVy
dHkuaXNJbXBvcnRhbnQoKSwgcHJvcGVydHkuc2hvcnRoYW5kSUQoKSwgcHJvcGVydHkubWV0YWRh
dGEoKS5tX2ltcGxpY2l0KSk7CisgICAgbV9wcm9wZXJ0eVZlY3Rvci5hcHBlbmQoQ1NTUHJvcGVy
dHkocHJlZml4aW5nVmFyaWFudCwgcHJvcGVydHkudmFsdWUoKSwgcHJvcGVydHkuaXNJbXBvcnRh
bnQoKSwgcHJvcGVydHkuc2hvcnRoYW5kSUQoKSwgcHJvcGVydHkubWV0YWRhdGEoKS5tX2ltcGxp
Y2l0KSk7CiB9CiAKIHZvaWQgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQ6OnNldFByZWZpeGluZ1Zh
cmlhbnRQcm9wZXJ0eShjb25zdCBDU1NQcm9wZXJ0eSYgcHJvcGVydHkpCkBAIC03NDEsNyArNzQy
LDcgQEAgYm9vbCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6c2V0UHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eUlELCBpbnQgaWRlbnRpZmkKIAogdm9pZCBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldDo6cGFyc2VEZWNsYXJhdGlvbihjb25zdCBTdHJpbmcmIHN0eWxlRGVjbGFyYXRpb24sIFN0
eWxlU2hlZXRDb250ZW50cyogY29udGV4dFN0eWxlU2hlZXQpCiB7Ci0gICAgbXV0YWJsZVByb3Bl
cnR5VmVjdG9yKCkuY2xlYXIoKTsKKyAgICBtX3Byb3BlcnR5VmVjdG9yLmNsZWFyKCk7CiAKICAg
ICBDU1NQYXJzZXJDb250ZXh0IGNvbnRleHQoY3NzUGFyc2VyTW9kZSgpKTsKICAgICBpZiAoY29u
dGV4dFN0eWxlU2hlZXQpIHsKQEAgLTc1NCw3ICs3NTUsNyBAQCB2b2lkIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0OjpwYXJzZURlY2xhcmF0aW9uKGNvbnN0IFN0cmluZyYgc3R5bGVEZWNsYXJhdGlv
biwgUwogCiB2b2lkIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjphZGRQYXJzZWRQcm9wZXJ0aWVz
KGNvbnN0IFZlY3RvcjxDU1NQcm9wZXJ0eT4mIHByb3BlcnRpZXMpCiB7Ci0gICAgbXV0YWJsZVBy
b3BlcnR5VmVjdG9yKCkucmVzZXJ2ZUNhcGFjaXR5KG11dGFibGVQcm9wZXJ0eVZlY3RvcigpLnNp
emUoKSArIHByb3BlcnRpZXMuc2l6ZSgpKTsKKyAgICBtX3Byb3BlcnR5VmVjdG9yLnJlc2VydmVD
YXBhY2l0eShtX3Byb3BlcnR5VmVjdG9yLnNpemUoKSArIHByb3BlcnRpZXMuc2l6ZSgpKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcHJvcGVydGllcy5zaXplKCk7ICsraSkKICAgICAg
ICAgYWRkUGFyc2VkUHJvcGVydHkocHJvcGVydGllc1tpXSk7CiB9CkBAIC0xMDk0LDcgKzEwOTUs
NyBAQCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBibG9ja1Byb3BlcnRpZXNbXSA9IHsKIAog
dm9pZCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldDo6Y2xlYXIoKQogewotICAgIG11dGFibGVQcm9w
ZXJ0eVZlY3RvcigpLmNsZWFyKCk7CisgICAgbV9wcm9wZXJ0eVZlY3Rvci5jbGVhcigpOwogfQog
CiBjb25zdCB1bnNpZ25lZCBudW1CbG9ja1Byb3BlcnRpZXMgPSBXVEZfQVJSQVlfTEVOR1RIKGJs
b2NrUHJvcGVydGllcyk7CkBAIC0xMTExLDcgKzExMTIsNyBAQCB2b2lkIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0OjpyZW1vdmVCbG9ja1Byb3BlcnRpZXMoKQogCiBib29sIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0OjpyZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcGVydHlJRCogc2V0
LCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgaWYgKG11dGFibGVQcm9wZXJ0eVZlY3RvcigpLmlz
RW1wdHkoKSkKKyAgICBpZiAobV9wcm9wZXJ0eVZlY3Rvci5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsd2F5cyB1c2VkIHdpdGggc3Rh
dGljIHNldHMgYW5kIGluIHRoYXQgY2FzZSBjb25zdHJ1Y3RpbmcgdGhlIGhhc2ggcmVwZWF0ZWRs
eSBpcyBwcmV0dHkgcG9pbnRsZXNzLgpAQCAtMTEyMCwxMSArMTEyMSwxMSBAQCBib29sIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcGVy
dHlJRCogc2V0LCB1bgogICAgICAgICB0b1JlbW92ZS5hZGQoc2V0W2ldKTsKIAogICAgIFZlY3Rv
cjxDU1NQcm9wZXJ0eT4gbmV3UHJvcGVydGllczsKLSAgICBuZXdQcm9wZXJ0aWVzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkobXV0YWJsZVByb3BlcnR5VmVjdG9yKCkuc2l6ZSgpKTsKKyAgICBuZXdQ
cm9wZXJ0aWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9wcm9wZXJ0eVZlY3Rvci5zaXplKCkp
OwogCi0gICAgdW5zaWduZWQgc2l6ZSA9IG11dGFibGVQcm9wZXJ0eVZlY3RvcigpLnNpemUoKTsK
KyAgICB1bnNpZ25lZCBzaXplID0gbV9wcm9wZXJ0eVZlY3Rvci5zaXplKCk7CiAgICAgZm9yICh1
bnNpZ25lZCBuID0gMDsgbiA8IHNpemU7ICsrbikgewotICAgICAgICBjb25zdCBDU1NQcm9wZXJ0
eSYgcHJvcGVydHkgPSBtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5hdChuKTsKKyAgICAgICAgY29u
c3QgQ1NTUHJvcGVydHkmIHByb3BlcnR5ID0gbV9wcm9wZXJ0eVZlY3Rvci5hdChuKTsKICAgICAg
ICAgLy8gTm90IHF1aXRlIHN1cmUgaWYgdGhlIGlzSW1wb3J0YW50IHRlc3QgaXMgbmVlZGVkIGJ1
dCBpdCBtYXRjaGVzIHRoZSBleGlzdGluZyBiZWhhdmlvci4KICAgICAgICAgaWYgKCFwcm9wZXJ0
eS5pc0ltcG9ydGFudCgpKSB7CiAgICAgICAgICAgICBpZiAodG9SZW1vdmUuY29udGFpbnMocHJv
cGVydHkuaWQoKSkpCkBAIC0xMTMzLDggKzExMzQsOCBAQCBib29sIE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0OjpyZW1vdmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgQ1NTUHJvcGVydHlJRCogc2V0LCB1
bgogICAgICAgICBuZXdQcm9wZXJ0aWVzLmFwcGVuZChwcm9wZXJ0eSk7CiAgICAgfQogCi0gICAg
Ym9vbCBjaGFuZ2VkID0gbmV3UHJvcGVydGllcy5zaXplKCkgIT0gbXV0YWJsZVByb3BlcnR5VmVj
dG9yKCkuc2l6ZSgpOwotICAgIG11dGFibGVQcm9wZXJ0eVZlY3RvcigpID0gbmV3UHJvcGVydGll
czsKKyAgICBib29sIGNoYW5nZWQgPSBuZXdQcm9wZXJ0aWVzLnNpemUoKSAhPSBtX3Byb3BlcnR5
VmVjdG9yLnNpemUoKTsKKyAgICBtX3Byb3BlcnR5VmVjdG9yID0gbmV3UHJvcGVydGllczsKICAg
ICByZXR1cm4gY2hhbmdlZDsKIH0KIApAQCAtMTE1Miw5ICsxMTUzLDkgQEAgQ1NTUHJvcGVydHkq
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpmaW5kQ1NTUHJvcGVydHlXaXRoSUQoQ1NTUHJvcGVy
dHlJRCBwcm9wZXIKICAgICBpbnQgZm91bmRQcm9wZXJ0eUluZGV4ID0gZmluZFByb3BlcnR5SW5k
ZXgocHJvcGVydHlJRCk7CiAgICAgaWYgKGZvdW5kUHJvcGVydHlJbmRleCA9PSAtMSkKICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuICZtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5hdChmb3Vu
ZFByb3BlcnR5SW5kZXgpOworICAgIHJldHVybiAmbV9wcm9wZXJ0eVZlY3Rvci5hdChmb3VuZFBy
b3BlcnR5SW5kZXgpOwogfQotICAgIAorCiBib29sIFN0eWxlUHJvcGVydHlTZXQ6OnByb3BlcnR5
TWF0Y2hlcyhDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IENTU1ZhbHVlKiBwcm9wZXJ0
eVZhbHVlKSBjb25zdAogewogICAgIGludCBmb3VuZFByb3BlcnR5SW5kZXggPSBmaW5kUHJvcGVy
dHlJbmRleChwcm9wZXJ0eUlEKTsKQEAgLTExNjYsNyArMTE2Nyw3IEBAIGJvb2wgU3R5bGVQcm9w
ZXJ0eVNldDo6cHJvcGVydHlNYXRjaGVzKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3Qg
Q1NTVmFsdWUqCiB2b2lkIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVFcXVpdmFsZW50
UHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKIHsKICAgICBWZWN0b3I8
Q1NTUHJvcGVydHlJRD4gcHJvcGVydGllc1RvUmVtb3ZlOwotICAgIHVuc2lnbmVkIHNpemUgPSBt
dXRhYmxlUHJvcGVydHlWZWN0b3IoKS5zaXplKCk7CisgICAgdW5zaWduZWQgc2l6ZSA9IG1fcHJv
cGVydHlWZWN0b3Iuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsKICAgICAgICAgUHJvcGVydHlSZWZlcmVuY2UgcHJvcGVydHkgPSBwcm9wZXJ0eUF0KGkp
OwogICAgICAgICBpZiAoc3R5bGUtPnByb3BlcnR5TWF0Y2hlcyhwcm9wZXJ0eS5pZCgpLCBwcm9w
ZXJ0eS52YWx1ZSgpKSkKQEAgLTExODAsNyArMTE4MSw3IEBAIHZvaWQgTXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQ6OnJlbW92ZUVxdWl2YWxlbnRQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydHlT
ZXQqCiB2b2lkIE11dGFibGVTdHlsZVByb3BlcnR5U2V0OjpyZW1vdmVFcXVpdmFsZW50UHJvcGVy
dGllcyhjb25zdCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKIHsKICAgICBWZWN0b3I8Q1NT
UHJvcGVydHlJRD4gcHJvcGVydGllc1RvUmVtb3ZlOwotICAgIHVuc2lnbmVkIHNpemUgPSBtdXRh
YmxlUHJvcGVydHlWZWN0b3IoKS5zaXplKCk7CisgICAgdW5zaWduZWQgc2l6ZSA9IG1fcHJvcGVy
dHlWZWN0b3Iuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kp
IHsKICAgICAgICAgUHJvcGVydHlSZWZlcmVuY2UgcHJvcGVydHkgPSBwcm9wZXJ0eUF0KGkpOwog
ICAgICAgICBpZiAoc3R5bGUtPmNzc1Byb3BlcnR5TWF0Y2hlcyhwcm9wZXJ0eS5pZCgpLCBwcm9w
ZXJ0eS52YWx1ZSgpKSkKQEAgLTEyNTIsNyArMTI1Myw3IEBAIHZvaWQgU3R5bGVQcm9wZXJ0eVNl
dDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uCiAgICAgc2l6ZV90IGFjdHVhbFNpemUgPSBtX2lzTXV0YWJsZSA/IHNpemVvZihTdHlsZVBy
b3BlcnR5U2V0KSA6IHNpemVGb3JJbW11dGFibGVTdHlsZVByb3BlcnR5U2V0V2l0aFByb3BlcnR5
Q291bnQobV9hcnJheVNpemUpOwogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTLCBhY3R1YWxTaXplKTsKICAgICBp
ZiAobV9pc011dGFibGUpCi0gICAgICAgIGluZm8uYWRkTWVtYmVyKG11dGFibGVQcm9wZXJ0eVZl
Y3RvcigpLCAibXV0YWJsZVByb3BlcnR5VmVjdG9yKCkiKTsKKyAgICAgICAgaW5mby5hZGRNZW1i
ZXIoc3RhdGljX2Nhc3Q8Y29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPih0aGlzKS0+bV9w
cm9wZXJ0eVZlY3RvciwgIm1fcHJvcGVydHlWZWN0b3IiKTsKICAgICBlbHNlIHsKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHByb3BlcnR5Q291bnQoKTsgKytpKQogICAgICAgICAg
ICAgaW5mby5hZGRNZW1iZXIocHJvcGVydHlBdChpKS52YWx1ZSgpLCAidmFsdWUiKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5oCmluZGV4IDkxMGJlNzYuLjM5ZTk2OTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuaApAQCAtNzYsMTkgKzc2LDggQEAgcHVibGlj
OgogICAgICAgICBDU1NQcm9wZXJ0eSB0b0NTU1Byb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gQ1NT
UHJvcGVydHkocHJvcGVydHlNZXRhZGF0YSgpLCBjb25zdF9jYXN0PENTU1ZhbHVlKj4ocHJvcGVy
dHlWYWx1ZSgpKSk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFN0eWxlUHJvcGVydHlNZXRh
ZGF0YSBwcm9wZXJ0eU1ldGFkYXRhKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgaWYg
KG1fcHJvcGVydHlTZXQuaXNNdXRhYmxlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1fcHJv
cGVydHlTZXQubXV0YWJsZVByb3BlcnR5VmVjdG9yKCkuYXQobV9pbmRleCkubWV0YWRhdGEoKTsK
LSAgICAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5U2V0LmltbXV0YWJsZU1ldGFkYXRhQXJyYXko
KVttX2luZGV4XTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IENTU1ZhbHVlKiBwcm9wZXJ0
eVZhbHVlKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1fcHJvcGVydHlTZXQu
aXNNdXRhYmxlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1fcHJvcGVydHlTZXQubXV0YWJs
ZVByb3BlcnR5VmVjdG9yKCkuYXQobV9pbmRleCkudmFsdWUoKTsKLSAgICAgICAgICAgIHJldHVy
biBtX3Byb3BlcnR5U2V0LmltbXV0YWJsZVZhbHVlQXJyYXkoKVttX2luZGV4XTsKLSAgICAgICAg
fQorICAgICAgICBTdHlsZVByb3BlcnR5TWV0YWRhdGEgcHJvcGVydHlNZXRhZGF0YSgpIGNvbnN0
OworICAgICAgICBjb25zdCBDU1NWYWx1ZSogcHJvcGVydHlWYWx1ZSgpIGNvbnN0OwogCiAgICAg
ICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQmIG1fcHJvcGVydHlTZXQ7CiAgICAgICAgIHVuc2ln
bmVkIG1faW5kZXg7CkBAIC0xMzEsOSArMTIwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd1N0
eWxlKCk7CiAjZW5kaWYKIAotICAgIGNvbnN0IENTU1ZhbHVlKiogaW1tdXRhYmxlVmFsdWVBcnJh
eSgpIGNvbnN0OwotICAgIGNvbnN0IFN0eWxlUHJvcGVydHlNZXRhZGF0YSogaW1tdXRhYmxlTWV0
YWRhdGFBcnJheSgpIGNvbnN0OwotCiAgICAgYm9vbCBwcm9wZXJ0eU1hdGNoZXMoQ1NTUHJvcGVy
dHlJRCwgY29uc3QgQ1NTVmFsdWUqKSBjb25zdDsKIAogcHJvdGVjdGVkOgpAQCAtMTUzLDkgKzEz
OSw2IEBAIHByb3RlY3RlZDoKIAogICAgIGludCBmaW5kUHJvcGVydHlJbmRleChDU1NQcm9wZXJ0
eUlEKSBjb25zdDsKIAotICAgIFZlY3RvcjxDU1NQcm9wZXJ0eSwgND4mIG11dGFibGVQcm9wZXJ0
eVZlY3RvcigpOwotICAgIGNvbnN0IFZlY3RvcjxDU1NQcm9wZXJ0eSwgND4mIG11dGFibGVQcm9w
ZXJ0eVZlY3RvcigpIGNvbnN0OwotCiAgICAgdW5zaWduZWQgbV9jc3NQYXJzZXJNb2RlIDogMjsK
ICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fb3duc0NTU09NV3JhcHBlciA6IDE7CiAgICAgbXV0YWJs
ZSB1bnNpZ25lZCBtX2lzTXV0YWJsZSA6IDE7CkBAIC0xODQsMjEgKzE2NywyMiBAQCBwdWJsaWM6
CiAKICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVNp
emU7IH0KIAorICAgIGNvbnN0IENTU1ZhbHVlKiogdmFsdWVBcnJheSgpIGNvbnN0OworICAgIGNv
bnN0IFN0eWxlUHJvcGVydHlNZXRhZGF0YSogbWV0YWRhdGFBcnJheSgpIGNvbnN0OworCiAgICAg
dm9pZCogbV9zdG9yYWdlOwogCiBwcml2YXRlOgogICAgIEltbXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQoY29uc3QgQ1NTUHJvcGVydHkqLCB1bnNpZ25lZCBjb3VudCwgQ1NTUGFyc2VyTW9kZSk7CiB9
OwogCi1pbmxpbmUgY29uc3QgQ1NTVmFsdWUqKiBTdHlsZVByb3BlcnR5U2V0OjppbW11dGFibGVW
YWx1ZUFycmF5KCkgY29uc3QKK2lubGluZSBjb25zdCBDU1NWYWx1ZSoqIEltbXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQ6OnZhbHVlQXJyYXkoKSBjb25zdAogewotICAgIEFTU0VSVCghbV9pc011dGFi
bGUpOwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IENTU1ZhbHVlKio+KGNvbnN0
X2Nhc3Q8Y29uc3Qgdm9pZCoqPigoJnN0YXRpY19jYXN0PGNvbnN0IEltbXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQqPih0aGlzKS0+bV9zdG9yYWdlKSkpOwogfQogCi1pbmxpbmUgY29uc3QgU3R5bGVQ
cm9wZXJ0eU1ldGFkYXRhKiBTdHlsZVByb3BlcnR5U2V0OjppbW11dGFibGVNZXRhZGF0YUFycmF5
KCkgY29uc3QKK2lubGluZSBjb25zdCBTdHlsZVByb3BlcnR5TWV0YWRhdGEqIEltbXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQ6Om1ldGFkYXRhQXJyYXkoKSBjb25zdAogewotICAgIEFTU0VSVCghbV9p
c011dGFibGUpOwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PGNvbnN0IFN0eWxlUHJvcGVy
dHlNZXRhZGF0YSo+KCZyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigoJnN0YXRpY19jYXN0
PGNvbnN0IEltbXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqPih0aGlzKS0+bV9zdG9yYWdlKSlbbV9h
cnJheVNpemUgKiBzaXplb2YoQ1NTVmFsdWUqKV0pOwogfQogCkBAIC0yNTIsMjIgKzIzNiwyNCBA
QCBwcml2YXRlOgogICAgIENTU1Byb3BlcnR5KiBmaW5kQ1NTUHJvcGVydHlXaXRoSUQoQ1NTUHJv
cGVydHlJRCk7CiB9OwogCi1pbmxpbmUgVmVjdG9yPENTU1Byb3BlcnR5LCA0PiYgU3R5bGVQcm9w
ZXJ0eVNldDo6bXV0YWJsZVByb3BlcnR5VmVjdG9yKCkKK2lubGluZSBTdHlsZVByb3BlcnR5TWV0
YWRhdGEgU3R5bGVQcm9wZXJ0eVNldDo6UHJvcGVydHlSZWZlcmVuY2U6OnByb3BlcnR5TWV0YWRh
dGEoKSBjb25zdAogewotICAgIEFTU0VSVChtX2lzTXV0YWJsZSk7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5U2V0Kj4odGhpcyktPm1fcHJvcGVydHlWZWN0b3I7
CisgICAgaWYgKG1fcHJvcGVydHlTZXQuaXNNdXRhYmxlKCkpCisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCY+KG1fcHJvcGVydHlTZXQpLm1f
cHJvcGVydHlWZWN0b3IuYXQobV9pbmRleCkubWV0YWRhdGEoKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgSW1tdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCY+KG1fcHJvcGVydHlTZXQpLm1l
dGFkYXRhQXJyYXkoKVttX2luZGV4XTsKIH0KIAotaW5saW5lIGNvbnN0IFZlY3RvcjxDU1NQcm9w
ZXJ0eSwgND4mIFN0eWxlUHJvcGVydHlTZXQ6Om11dGFibGVQcm9wZXJ0eVZlY3RvcigpIGNvbnN0
CitpbmxpbmUgY29uc3QgQ1NTVmFsdWUqIFN0eWxlUHJvcGVydHlTZXQ6OlByb3BlcnR5UmVmZXJl
bmNlOjpwcm9wZXJ0eVZhbHVlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9pc011dGFibGUpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCo+KHRo
aXMpLT5tX3Byb3BlcnR5VmVjdG9yOworICAgIGlmIChtX3Byb3BlcnR5U2V0LmlzTXV0YWJsZSgp
KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydHlT
ZXQmPihtX3Byb3BlcnR5U2V0KS5tX3Byb3BlcnR5VmVjdG9yLmF0KG1faW5kZXgpLnZhbHVlKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEltbXV0YWJsZVN0eWxlUHJvcGVydHlTZXQm
PihtX3Byb3BlcnR5U2V0KS52YWx1ZUFycmF5KClbbV9pbmRleF07CiB9CiAKIGlubGluZSB1bnNp
Z25lZCBTdHlsZVByb3BlcnR5U2V0Ojpwcm9wZXJ0eUNvdW50KCkgY29uc3QKIHsKICAgICBpZiAo
bV9pc011dGFibGUpCi0gICAgICAgIHJldHVybiBtdXRhYmxlUHJvcGVydHlWZWN0b3IoKS5zaXpl
KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldCo+KHRoaXMpLT5tX3Byb3BlcnR5VmVjdG9yLnNpemUoKTsKICAgICByZXR1cm4gbV9hcnJh
eVNpemU7CiB9CiAK
</data>
<flag name="review"
          id="219867"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>