<?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>60912</bug_id>
          
          <creation_ts>2011-05-16 11:31:42 -0700</creation_ts>
          <short_desc>[GTK] [WebKit2] Provide a fast version of the backing store for X11</short_desc>
          <delta_ts>2011-05-16 15:49:12 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>andersca</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>otte</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>404627</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-16 11:31:42 -0700</bug_when>
    <thetext>The WebKit2 backing store has slow scrolling behavior, since Cairo does not properly optimize copies between different areas of a surface. One solution for this problem would be to have a fast version of the backing store that knows how to invoke XCopyArea directly. The idea would be to put this backing store in WebCore so that it could be shared with WebKit1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404644</commentid>
    <comment_count>1</comment_count>
      <attachid>93680</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-16 11:56:25 -0700</bug_when>
    <thetext>Created attachment 93680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404784</commentid>
    <comment_count>2</comment_count>
      <attachid>93680</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 15:49:07 -0700</bug_when>
    <thetext>Comment on attachment 93680
Patch

Clearing flags on attachment: 93680

Committed r86620: &lt;http://trac.webkit.org/changeset/86620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404785</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-16 15:49:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93680</attachid>
            <date>2011-05-16 11:56:25 -0700</date>
            <delta_ts>2011-05-16 15:49:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60912-20110516115624.patch</filename>
            <type>text/plain</type>
            <size>17219</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODYyNDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZjkyOTNjZjQ4ZjQ4YmI1
MDkxZTFkNGQ5MzFlZTg0ZWVjN2FiYmZiLi44YjQwNGUzZjI3Yjk0MGM3ZmIyMDU3M2EyYmQ5Y2E1
NTUzOWNmY2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMTYgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFtXZWJLaXQyXSBQcm92aWRlIGEgZmFz
dCB2ZXJzaW9uIG9mIHRoZSBiYWNraW5nIHN0b3JlIGZvciBYMTEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTEyCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLiBUaGlzIHdpbGwgYmUgY292ZXJlZCBieSBXZWJLaXQyIHBpeGVsIHRlc3RzLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkZWQgbmV3IEd0a1dpZGdldEJhY2tpbmdTdG9y
ZSBzb3VyY2UgYW5kIGhlYWRlciBmaWxlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lk
Z2V0QmFja2luZ1N0b3JlLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtXaWRn
ZXRCYWNraW5nU3RvcmVDYWlyby5jcHA6IEFkZGVkIHRoaXMgaW1wbGVtZW50YXRpb24gb2YgdGhl
IGJhY2tpbmcKKyAgICAgICAgc3RvcmUgdGhhdCB1c2VzIENhaXJvIGFuZCBoYXMgdGhlIHNhbWUg
cGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzIGFzIHRoZSBXZWJLaXQyIGltcGxlbWVudGFpdG9u
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwOiBB
ZGRlZCB0aGlzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBiYWNraW5nCisgICAgICAgIHN0b3JlIHRo
YXQgdXNlcyBYMTEgZGlyZWN0bHkgYW5kIGhhcyBiZXR0ZXIgcGVyZm9ybWFuY2UgdGhhbiB0aGUg
Q2Fpcm8gdmVyc2lvbi4KKwogMjAxMS0wNS0xMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDZjZjUwNTE3ZGNmYmMzYTY5ZTc5NDdhNDhkZjUwYzRl
NTA4YTEwMTIuLmMzNTI0NTQ2NjcyZWYzYmU3N2I0NzIwZDk4MmFkNDA0ZTMyZTU4ZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzczOCw2ICszNzM4LDkgQEAgd2ViY29yZWd0
a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrQ2xpY2tDb3Vu
dGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmggXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmUuaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTA0ZDY2MDAzODM2OWI2OTdlNzQzM2EzZjMzZDlhOGYzZTA5ZjJmMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3Rv
cmUuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCBJZ2FsaWEg
Uy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBHdGtXaWRnZXRC
YWNraW5nU3RvcmVfaCAKKyNkZWZpbmUgR3RrV2lkZ2V0QmFja2luZ1N0b3JlX2ggCisKKyNpbmNs
dWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgPHd0Zi9GYXN0
QWxsb2NCYXNlLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHdGtXaWRnZXRC
YWNraW5nU3RvcmVQcml2YXRlOworCitjbGFzcyBHdGtXaWRnZXRCYWNraW5nU3RvcmUgeworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEd0a1dpZGdldEJhY2tpbmdTdG9yZSk7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxHdGtX
aWRnZXRCYWNraW5nU3RvcmU+IGNyZWF0ZShHdGtXaWRnZXQqLCBjb25zdCBJbnRTaXplJik7CisK
KyAgICB+R3RrV2lkZ2V0QmFja2luZ1N0b3JlKCk7CisgICAgY2Fpcm9fc3VyZmFjZV90KiBjYWly
b1N1cmZhY2UoKTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBj
b25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpOworCitwcml2YXRlOgorICAgIEd0a1dpZGdldEJh
Y2tpbmdTdG9yZShHdGtXaWRnZXQqLCBjb25zdCBJbnRTaXplJik7CisKKyAgICBPd25QdHI8R3Rr
V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmFja2luZ1N0b3JlX2gKKwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWE5NjU5N2IwYWZjZTg0MTE0MjRhMmY0MTRlZTVkM2MzZmU5NGIyOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRC
YWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIElnYWxpYSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3RrV2lkZ2V0QmFja2luZ1N0b3JlLmgiCisK
KyNpZm5kZWYgWFBfVU5JWAorCisjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlIDxj
YWlyby9jYWlyby5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JC
YWNraW5nU3RvcmUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCit7Cisg
ICAgcmV0dXJuIGdka193aW5kb3dfY3JlYXRlX3NpbWlsYXJfc3VyZmFjZShndGtfd2lkZ2V0X2dl
dF93aW5kb3cod2lkZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENBSVJPX0NPTlRFTlRfQ09MT1JfQUxQSEEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOworfQor
CisKK2NsYXNzIEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKworcHVibGljOgorICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFj
ZTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7CisKKyAgICBz
dGF0aWMgUGFzc093blB0cjxHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoR3Rr
V2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUod2lkZ2V0LCBzaXpl
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIC8vIFdlIGtlZXAgdHdvIGNvcGllcyBvZiB0aGUg
c3VyZmFjZSBoZXJlLCB3aGljaCB3aWxsIGRvdWJsZSB0aGUgbWVtb3J5IHVzYWdlLCBidXQgaW5j
cmVhc2UKKyAgICAvLyBzY3JvbGxpbmcgcGVyZm9ybWFuY2Ugc2luY2Ugd2UgZG8gbm90IGhhdmUg
dG8ga2VlcCByZWFsbG9jYXRpbmcgYSBtZW1vcnkgcmVnaW9uIGR1cmluZworICAgIC8vIHF1aWNr
IHNjcm9sbGluZyByZXF1ZXN0cy4KKyAgICBHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKEd0
a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgICAgICA6IG1fc3VyZmFj
ZShjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpCisgICAgICAgICwg
bV9zY3JvbGxTdXJmYWNlKGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXpl
KSkKKyAgICB7CisgICAgfQorfTsKKworUGFzc093blB0cjxHdGtXaWRnZXRCYWNraW5nU3RvcmU+
IEd0a1dpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJ
bnRTaXplJiBzaXplKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlKHdpZGdldCwgc2l6ZSkpOworfQorCitHdGtXaWRnZXRCYWNraW5nU3RvcmU6Okd0a1dp
ZGdldEJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkK
KyAgICA6IG1fcHJpdmF0ZShHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lk
Z2V0LCBzaXplKSkKK3sKK30KKworR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjp+R3RrV2lkZ2V0QmFj
a2luZ1N0b3JlKCkKK3sKK30KKworY2Fpcm9fc3VyZmFjZV90KiBHdGtXaWRnZXRCYWNraW5nU3Rv
cmU6OmNhaXJvU3VyZmFjZSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdl
dCgpOworfQorCitzdGF0aWMgdm9pZCBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKGNh
aXJvX3N1cmZhY2VfdCogZnJvbSwgY2Fpcm9fc3VyZmFjZV90KiB0bywgY29uc3QgSW50U2l6ZSYg
b2Zmc2V0LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIFJlZlB0cjxjYWlyb190PiBjb250
ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHRvKSk7CisgICAgY2Fpcm9fc2V0X3NvdXJjZV9z
dXJmYWNlKGNvbnRleHQuZ2V0KCksIGZyb20sIG9mZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0
KCkpOworICAgIGNhaXJvX3JlY3RhbmdsZShjb250ZXh0LmdldCgpLCByZWN0LngoKSwgcmVjdC55
KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgY2Fpcm9fZmlsbChjb250ZXh0
LmdldCgpKTsKK30KKwordm9pZCBHdGtXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbChjb25zdCBJ
bnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7CisgICAg
SW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOworICAgIHRhcmdldFJlY3QubW92ZShzY3Jv
bGxPZmZzZXQpOworICAgIHRhcmdldFJlY3Quc2hpZnRNYXhYRWRnZVRvKHRhcmdldFJlY3QubWF4
WCgpIC0gc2Nyb2xsT2Zmc2V0LndpZHRoKCkpOworICAgIHRhcmdldFJlY3Quc2hpZnRNYXhZRWRn
ZVRvKHRhcmdldFJlY3QubWF4WSgpIC0gc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKTsKKyAgICBpZiAo
dGFyZ2V0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvcHlSZWN0RnJv
bU9uZVN1cmZhY2VUb0Fub3RoZXIobV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCksIG1fcHJpdmF0
ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2Nyb2xsT2Zmc2V0LCB0YXJnZXRSZWN0KTsKKyAgICBjb3B5UmVjdEZyb21PbmVTdXJm
YWNlVG9Bbm90aGVyKG1fcHJpdmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLCBtX3ByaXZhdGUt
Pm1fc3VyZmFjZS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu
dFNpemUoKSwgdGFyZ2V0UmVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vICFYUF9VTklYCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhZTRiOTQ3ZmY5NmE5
YTk3NjI3ZjU1OTAzN2I3M2Y2NjUyMDFhYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcApAQCAtMCwwICsx
LDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgSWdhbGlhIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
dGtXaWRnZXRCYWNraW5nU3RvcmUuaCIKKworI2lmZGVmIFhQX1VOSVgKKworI2luY2x1ZGUgIlJl
ZlB0ckNhaXJvLmgiCisjaW5jbHVkZSA8WDExL1hsaWIuaD4KKyNpbmNsdWRlIDxjYWlyby9jYWly
by14bGliLmg+CisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKyNpbmNsdWRlIDxnZGsvZ2RreC5o
PgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBH
dGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShH
dGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKKworcHVibGljOgorICAgIERpc3BsYXkqIG1fZGlzcGxheTsKKyAgICBQaXhtYXAgbV9waXht
YXA7CisgICAgR0MgbV9nYzsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7
CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxHdGtXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBj
cmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUod2lk
Z2V0LCBzaXplKSk7CisgICAgfQorCisgICAgfkd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUo
KQorICAgIHsKKyAgICAgICAgWEZyZWVQaXhtYXAobV9kaXNwbGF5LCBtX3BpeG1hcCk7CisgICAg
ICAgIFhGcmVlR0MobV9kaXNwbGF5LCBtX2djKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8g
V2Uga2VlcCB0d28gY29waWVzIG9mIHRoZSBzdXJmYWNlIGhlcmUsIHdoaWNoIHdpbGwgZG91Ymxl
IHRoZSBtZW1vcnkgdXNhZ2UsIGJ1dCBpbmNyZWFzZQorICAgIC8vIHNjcm9sbGluZyBwZXJmb3Jt
YW5jZSBzaW5jZSB3ZSBkbyBub3QgaGF2ZSB0byBrZWVwIHJlYWxsb2NhdGluZyBhIG1lbW9yeSBy
ZWdpb24gZHVyaW5nCisgICAgLy8gcXVpY2sgc2Nyb2xsaW5nIHJlcXVlc3RzLgorICAgIEd0a1dp
ZGdldEJhY2tpbmdTdG9yZVByaXZhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUm
IHNpemUpCisgICAgeworICAgICAgICBHZGtWaXN1YWwqIHZpc3VhbCA9IGd0a193aWRnZXRfZ2V0
X3Zpc3VhbCh3aWRnZXQpOworICAgICAgICBHZGtTY3JlZW4qIHNjcmVlbiA9IGdka192aXN1YWxf
Z2V0X3NjcmVlbih2aXN1YWwpOworICAgICAgICBtX2Rpc3BsYXkgPSBHREtfU0NSRUVOX1hESVNQ
TEFZKHNjcmVlbik7CisgICAgICAgIG1fcGl4bWFwID0gWENyZWF0ZVBpeG1hcChtX2Rpc3BsYXks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREtfV0lORE9XX1hJRChnZGtfc2Ny
ZWVuX2dldF9yb290X3dpbmRvdyhzY3JlZW4pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdka192aXN1YWxfZ2V0X2RlcHRoKHZpc3VhbCkpOworICAgICAgICBtX2dj
ID0gWENyZWF0ZUdDKG1fZGlzcGxheSwgbV9waXhtYXAsIDAsIDApOworCisgICAgICAgIG1fc3Vy
ZmFjZSA9IGFkb3B0UmVmKGNhaXJvX3hsaWJfc3VyZmFjZV9jcmVhdGUobV9kaXNwbGF5LCBtX3Bp
eG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHREtfVklTVUFMX1hWSVNVQUwodmlzdWFsKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpKTsKKyAgICB9Cit9OworCitQYXNzT3duUHRyPEd0a1dpZGdldEJhY2tpbmdTdG9yZT4gR3Rr
V2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNp
emUmIHNpemUpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHdGtXaWRnZXRCYWNraW5nU3Rv
cmUod2lkZ2V0LCBzaXplKSk7Cit9CisKK0d0a1dpZGdldEJhY2tpbmdTdG9yZTo6R3RrV2lkZ2V0
QmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAg
IDogbV9wcml2YXRlKEd0a1dpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQs
IHNpemUpKQoreworfQorCitHdGtXaWRnZXRCYWNraW5nU3RvcmU6On5HdGtXaWRnZXRCYWNraW5n
U3RvcmUoKQoreworfQorCitjYWlyb19zdXJmYWNlX3QqIEd0a1dpZGdldEJhY2tpbmdTdG9yZTo6
Y2Fpcm9TdXJmYWNlKCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCk7
Cit9CisKK3ZvaWQgR3RrV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYg
c2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQoreworICAgIEludFJlY3Qg
dGFyZ2V0UmVjdChzY3JvbGxSZWN0KTsKKyAgICB0YXJnZXRSZWN0Lm1vdmUoc2Nyb2xsT2Zmc2V0
KTsKKyAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4WEVkZ2VUbyh0YXJnZXRSZWN0Lm1heFgoKSAtIHNj
cm9sbE9mZnNldC53aWR0aCgpKTsKKyAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4WUVkZ2VUbyh0YXJn
ZXRSZWN0Lm1heFkoKSAtIHNjcm9sbE9mZnNldC5oZWlnaHQoKSk7CisgICAgaWYgKHRhcmdldFJl
Y3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBYQ29weUFyZWEobV9wcml2YXRl
LT5tX2Rpc3BsYXksIG1fcHJpdmF0ZS0+bV9waXhtYXAsIG1fcHJpdmF0ZS0+bV9waXhtYXAsIG1f
cHJpdmF0ZS0+bV9nYywgCisgICAgICAgICAgICAgIHRhcmdldFJlY3QueCgpIC0gc2Nyb2xsT2Zm
c2V0LndpZHRoKCksIHRhcmdldFJlY3QueSgpIC0gc2Nyb2xsT2Zmc2V0LmhlaWdodCgpLAorICAg
ICAgICAgICAgICB0YXJnZXRSZWN0LndpZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCksCisgICAg
ICAgICAgICAgIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFhQX1VOSVgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0NDFmNTdj
NGJhYzBmN2E5ZDQ2MWJhNmUyYjUzZDMzZjY4NjgxZGQ4Li5iNzc0ZGMwYTk3ZDYzZTkyMGFhMDRi
ODAzNDYzN2I3MjFmNmZiZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDUt
MTYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFtXZWJLaXQyXSBQcm92
aWRlIGEgZmFzdCB2ZXJzaW9uIG9mIHRoZSBiYWNraW5nIHN0b3JlIGZvciBYMTEKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTEyCisKKyAgICAgICAg
SW5zdGVhZCBvZiBhbGxvY2F0aW5nIHRoZSBiYWNraW5nIHN0b3JlIHN1cmZhY2UgZGlyZWN0bHkg
aW4gV2ViS2l0MiwKKyAgICAgICAgaW5zdGFudGlhdGUgdGhlIEd0a1dpZGdldEJhY2tpbmdTdG9y
ZSBjbGFzcyB3aGljaCBhYnN0cmFjdHMgYXdheSB0aGUKKyAgICAgICAgcGxhdGZvcm0tc3BlY2lm
aWMgZGV0YWlscyBvZiBtYWludGFpbmluZyB0aGUgYmFja2luZyBzdG9yZS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL0JhY2tp
bmdTdG9yZUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdTdG9yZTo6cGFpbnQpOiBD
YWxsIGludG8gR3RrV2lkZ2V0QmFja2luZ1N0b3JlIHRvIGdldCB0aGUgQ2Fpcm8gc3VyZmFjZSBu
b3cuCisgICAgICAgIChXZWJLaXQ6OkJhY2tpbmdTdG9yZTo6aW5jb3Jwb3JhdGVVcGRhdGUpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6QmFja2luZ1N0b3JlOjpzY3JvbGwpOiBDYWxsIGludG8g
R3RrV2lkZ2V0QmFja2luZ1N0b3JlIHRvIGRvIHRoZSBhY3R1YWwgYmFja2luZyBzdG9yZSBzY3Jv
bGwuCisKIDIwMTEtMDUtMTEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0JhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0JhY2tpbmdTdG9yZS5oCmluZGV4IDdhNjlkN2M0NGJkOTFlYjIyMjE0MmE0MTcyZWI5
ZGFjZTVmZjQ1MTMuLjVhNjUzZmM3OTZmNjZiOTg4NWMwMjM4ZmJjNTcwYjhiMDQzNzIwYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9CYWNraW5nU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQmFja2luZ1N0b3JlLmgKQEAgLTQyLDcgKzQyLDggQEAK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQotI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fp
cm8uaD4KKyNpbmNsdWRlIDxSZWZQdHJDYWlyby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR3RrV2lk
Z2V0QmFja2luZ1N0b3JlLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTYs
NyArOTcsNyBAQCBwcml2YXRlOgogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgUVBpeG1hcCBtX3Bp
eG1hcDsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBt
X3N1cmZhY2U7CisgICAgT3duUHRyPFdlYkNvcmU6Okd0a1dpZGdldEJhY2tpbmdTdG9yZT4gbV9i
YWNraW5nU3RvcmU7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvQmFja2luZ1N0b3JlR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvQmFja2luZ1N0b3JlR3RrLmNwcAppbmRleCAwZmM5NWMzODc3ODk5MzY1MWNkMDI3YzM2
NDhmNzVjOTlkZTJlYzY1Li5jYjM4ZGNlNTE3MGY4MGIyMzZmNzQxZmU3OTVhZGRkMTBjZDQzMTZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL0JhY2tpbmdTdG9yZUd0
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9CYWNraW5nU3RvcmVHdGsu
Y3BwCkBAIC00MCwyNiArNDAsMjQgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgQmFja2lu
Z1N0b3JlOjpwYWludChjYWlyb190KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewor
ICAgIEFTU0VSVChtX2JhY2tpbmdTdG9yZSk7CisKICAgICBjYWlyb19zZXRfb3BlcmF0b3IoY29u
dGV4dCwgQ0FJUk9fT1BFUkFUT1JfU09VUkNFKTsKLSAgICBjYWlyb19zZXRfc291cmNlX3N1cmZh
Y2UoY29udGV4dCwgbV9zdXJmYWNlLmdldCgpLCAwLCAwKTsKKyAgICBjYWlyb19zZXRfc291cmNl
X3N1cmZhY2UoY29udGV4dCwgbV9iYWNraW5nU3RvcmUtPmNhaXJvU3VyZmFjZSgpLCAwLCAwKTsK
ICAgICBjYWlyb19yZWN0YW5nbGUoY29udGV4dCwgcmVjdC54KCksIHJlY3QueSgpLCByZWN0Lndp
ZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogICAgIGNhaXJvX2ZpbGwoY29udGV4dCk7CiB9CiAKIHZv
aWQgQmFja2luZ1N0b3JlOjppbmNvcnBvcmF0ZVVwZGF0ZShTaGFyZWFibGVCaXRtYXAqIGJpdG1h
cCwgY29uc3QgVXBkYXRlSW5mbyYgdXBkYXRlSW5mbykKIHsKLSAgICBHdGtXaWRnZXQqIHZpZXdX
aWRnZXQgPSBtX3dlYlBhZ2VQcm94eS0+dmlld1dpZGdldCgpOwotICAgIGlmICghbV9zdXJmYWNl
KSB7Ci0gICAgICAgIG1fc3VyZmFjZSA9IGFkb3B0UmVmKGdka193aW5kb3dfY3JlYXRlX3NpbWls
YXJfc3VyZmFjZShndGtfd2lkZ2V0X2dldF93aW5kb3codmlld1dpZGdldCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQUlS
T19DT05URU5UX0NPTE9SX0FMUEhBLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWln
aHQoKSkpOwotICAgIH0KKyAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQorICAgICAgICBtX2JhY2tp
bmdTdG9yZSA9IEd0a1dpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKG1fd2ViUGFnZVByb3h5LT52
aWV3V2lkZ2V0KCksIHNpemUoKSk7CiAKICAgICBzY3JvbGwodXBkYXRlSW5mby5zY3JvbGxSZWN0
LCB1cGRhdGVJbmZvLnNjcm9sbE9mZnNldCk7CiAKICAgICAvLyBQYWludCBhbGwgdXBkYXRlIHJl
Y3RzLgogICAgIEludFBvaW50IHVwZGF0ZVJlY3RMb2NhdGlvbiA9IHVwZGF0ZUluZm8udXBkYXRl
UmVjdEJvdW5kcy5sb2NhdGlvbigpOwotICAgIFJlZlB0cjxjYWlyb190PiBjb250ZXh0KGFkb3B0
UmVmKGNhaXJvX2NyZWF0ZShtX3N1cmZhY2UuZ2V0KCkpKSk7CisgICAgUmVmUHRyPGNhaXJvX3Q+
IGNvbnRleHQoYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKG1fYmFja2luZ1N0b3JlLT5jYWlyb1N1cmZh
Y2UoKSkpKTsKICAgICBHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0KGNvbnRleHQuZ2V0
KCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXBkYXRlSW5mby51cGRhdGVSZWN0cy5z
aXplKCk7ICsraSkgewogICAgICAgICBJbnRSZWN0IHVwZGF0ZVJlY3QgPSB1cGRhdGVJbmZvLnVw
ZGF0ZVJlY3RzW2ldOwpAQCAtNzQsMjcgKzcyLDggQEAgdm9pZCBCYWNraW5nU3RvcmU6OnNjcm9s
bChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQK
ICAgICBpZiAoc2Nyb2xsT2Zmc2V0LmlzWmVybygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBB
U1NFUlQobV9zdXJmYWNlKTsKLSAgICBSZWZQdHI8Y2Fpcm9fdD4gY29udGV4dCA9IGFkb3B0UmVm
KGNhaXJvX2NyZWF0ZShtX3N1cmZhY2UuZ2V0KCkpKTsKLSAgICBjYWlyb19wdXNoX2dyb3VwKGNv
bnRleHQuZ2V0KCkpOwotCi0gICAgSW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOwotICAg
IHRhcmdldFJlY3QubW92ZShzY3JvbGxPZmZzZXQpOwotICAgIHRhcmdldFJlY3Quc2hpZnRNYXhY
RWRnZVRvKHRhcmdldFJlY3QubWF4WCgpIC0gc2Nyb2xsT2Zmc2V0LndpZHRoKCkpOwotICAgIHRh
cmdldFJlY3Quc2hpZnRNYXhZRWRnZVRvKHRhcmdldFJlY3QubWF4WSgpIC0gc2Nyb2xsT2Zmc2V0
LmhlaWdodCgpKTsKLSAgICBpZiAodGFyZ2V0UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZShjb250ZXh0LmdldCgpLCBtX3N1cmZh
Y2UuZ2V0KCksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQud2lk
dGgoKSwgc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKTsKLSAgICBjYWlyb19yZWN0YW5nbGUoY29udGV4
dC5nZXQoKSwgdGFyZ2V0UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCAKLSAgICAgICAgICAgICAg
ICAgICAgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpKTsKLSAgICBjYWly
b19maWxsKGNvbnRleHQuZ2V0KCkpOwotCi0gICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShj
b250ZXh0LmdldCgpKTsKLSAgICBjYWlyb19yZWN0YW5nbGUoY29udGV4dC5nZXQoKSwgdGFyZ2V0
UmVjdC54KCksIHRhcmdldFJlY3QueSgpLAotICAgICAgICAgICAgICAgICAgICB0YXJnZXRSZWN0
LndpZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCkpOwotICAgIGNhaXJvX2ZpbGwoY29udGV4dC5n
ZXQoKSk7CisgICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKKyAgICBtX2JhY2tpbmdTdG9yZS0+
c2Nyb2xsKHNjcm9sbFJlY3QsIHNjcm9sbE9mZnNldCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>