<?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>46849</bug_id>
          
          <creation_ts>2010-09-29 16:00:32 -0700</creation_ts>
          <short_desc>[chromium] Add accelerated compositing support to DumpRenderTree and test_shell</short_desc>
          <delta_ts>2010-10-27 14:41:56 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>48470</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287187</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-29 16:00:32 -0700</bug_when>
    <thetext>In order to enable automated testing, accelerated compositing support must be added to DumpRenderTree and test_shell.

This is the WebKit half of http://crbug.com/51879 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287207</commentid>
    <comment_count>1</comment_count>
      <attachid>69275</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-29 16:31:06 -0700</bug_when>
    <thetext>Created attachment 69275
Patch

From the ChangeLog:

Added offscreen code path for WebGraphicsContext3DDefaultImpl which works with the compositor integration in both DumpRenderTree and test_shell, since both pass a non-null WebCanvas* to WebViewImpl::paint and thereby trigger the compositor&apos;s readback code path. Added support for --enable-accelerated-compositing to DumpRenderTree.

Tested in both test_shell and DumpRenderTree on Linux, the latter by modifying a compositing layout test, dumping the pixels and verifying that they matched the output when the compositor was active.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287242</commentid>
    <comment_count>2</comment_count>
      <attachid>69275</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-29 17:24:07 -0700</bug_when>
    <thetext>Comment on attachment 69275
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287298</commentid>
    <comment_count>3</comment_count>
      <attachid>69275</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-29 18:34:04 -0700</bug_when>
    <thetext>Comment on attachment 69275
Patch

The DRT part looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287367</commentid>
    <comment_count>4</comment_count>
      <attachid>69275</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-09-29 21:04:06 -0700</bug_when>
    <thetext>Comment on attachment 69275
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287638</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-30 10:36:48 -0700</bug_when>
    <thetext>Committed r68801: &lt;http://trac.webkit.org/changeset/68801&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69275</attachid>
            <date>2010-09-29 16:31:06 -0700</date>
            <delta_ts>2010-09-29 21:04:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>drt.patch</filename>
            <type>text/plain</type>
            <size>20253</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjg3MDYpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMDktMjkgIEtlbm5l
dGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nIHN1cHBvcnQgdG8gRHVtcFJlbmRlclRyZWUgYW5kIHRlc3Rfc2hlbGwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2ODQ5CisKKyAgICAgICAgQWRk
ZWQgb2Zmc2NyZWVuIGNvZGUgcGF0aCBmb3IgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1w
bCB3aGljaAorICAgICAgICB3b3JrcyB3aXRoIHRoZSBjb21wb3NpdG9yIGludGVncmF0aW9uIGlu
IGJvdGggRHVtcFJlbmRlclRyZWUgYW5kCisgICAgICAgIHRlc3Rfc2hlbGwsIHNpbmNlIGJvdGgg
cGFzcyBhIG5vbi1udWxsIFdlYkNhbnZhcyogdG8gV2ViVmlld0ltcGw6OnBhaW50CisgICAgICAg
IGFuZCB0aGVyZWJ5IHRyaWdnZXIgdGhlIGNvbXBvc2l0b3IncyByZWFkYmFjayBjb2RlIHBhdGgu
IEFkZGVkIHN1cHBvcnQKKyAgICAgICAgZm9yIC0tZW5hYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0
aW5nIHRvIER1bXBSZW5kZXJUcmVlLgorCisgICAgICAgIFRlc3RlZCBpbiBib3RoIHRlc3Rfc2hl
bGwgYW5kIER1bXBSZW5kZXJUcmVlIG9uIExpbnV4LCB0aGUgbGF0dGVyIGJ5CisgICAgICAgIG1v
ZGlmeWluZyBhIGNvbXBvc2l0aW5nIGxheW91dCB0ZXN0LCBkdW1waW5nIHRoZSBwaXhlbHMgYW5k
IHZlcmlmeWluZworICAgICAgICB0aGF0IHRoZXkgbWF0Y2hlZCB0aGUgb3V0cHV0IHdoZW4gdGhl
IGNvbXBvc2l0b3Igd2FzIGFjdGl2ZS4KKworICAgICAgICAqIHNyYy9XZWJHcmFwaGljc0NvbnRl
eHQzRERlZmF1bHRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0
M0REZWZhdWx0SW1wbDo6V2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OmluaXRpYWxpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpyZXNvbHZl
TXVsdGlzYW1wbGVkRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0Nv
bnRleHQzRERlZmF1bHRJbXBsOjpnZXRQbGF0Zm9ybVRleHR1cmVJZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OnByZXBhcmVUZXh0dXJlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6cmVhZEJhY2tG
cmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVs
dEltcGw6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250
ZXh0M0REZWZhdWx0SW1wbDo6Y29weVRleFN1YkltYWdlMkQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpyZWFkUGl4ZWxzKToKKyAgICAgICAgKiBz
cmMvV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5oOgorCiAyMDEwLTA5LTI5ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMg
Um9iaW5zb24uCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNE
RGVmYXVsdEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViR3Jh
cGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHAJKHJldmlzaW9uIDY4NjkyKQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImFwcC9nZngvZ2wvZ2xfYmluZGlu
Z3MuaCIKICNpbmNsdWRlICJhcHAvZ2Z4L2dsL2dsX2NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNjcsNiArNjgsNyBA
QCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpWZXJ0ZXhBCiAKIFdlYkdyYXBoaWNz
Q29udGV4dDNERGVmYXVsdEltcGw6OldlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwoKQog
ICAgIDogbV9pbml0aWFsaXplZChmYWxzZSkKKyAgICAsIG1fcmVuZGVyRGlyZWN0bHlUb1dlYlZp
ZXcoZmFsc2UpCiAgICAgLCBtX3RleHR1cmUoMCkKICAgICAsIG1fZmJvKDApCiAgICAgLCBtX2Rl
cHRoU3RlbmNpbEJ1ZmZlcigwKQpAQCAtMTEyLDE5ICsxMTQsNDkgQEAgV2ViR3JhcGhpY3NDb250
ZXh0M0REZWZhdWx0SW1wbDo6fldlYkdyYQogCiBib29sIFdlYkdyYXBoaWNzQ29udGV4dDNERGVm
YXVsdEltcGw6OmluaXRpYWxpemUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0
cmlidXRlcywgV2ViVmlldyogd2ViVmlldywgYm9vbCByZW5kZXJEaXJlY3RseVRvV2ViVmlldykK
IHsKLSAgICBpZiAocmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcpIHsKLSAgICAgICAgLy8gVGhpcyBt
b2RlIGlzbid0IHN1cHBvcnRlZCB3aXRoIHRoZSBpbi1wcm9jZXNzIGltcGxlbWVudGF0aW9uIHll
dC4gKEZJWE1FKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgaWYgKCFnZng6
OkdMQ29udGV4dDo6SW5pdGlhbGl6ZU9uZU9mZigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBtX2dsQ29udGV4dCA9IFdURjo6YWRvcHRQdHIoZ2Z4OjpHTENvbnRleHQ6OkNyZWF0ZU9m
ZnNjcmVlbkdMQ29udGV4dCgwKSk7CisgICAgbV9yZW5kZXJEaXJlY3RseVRvV2ViVmlldyA9IHJl
bmRlckRpcmVjdGx5VG9XZWJWaWV3OworICAgIGdmeDo6R0xDb250ZXh0KiBzaGFyZUNvbnRleHQg
PSAwOworCisgICAgaWYgKCFyZW5kZXJEaXJlY3RseVRvV2ViVmlldykgeworICAgICAgICAvLyBQ
aWNrIHVwIHRoZSBjb21wb3NpdG9yJ3MgY29udGV4dCB0byBzaGFyZSByZXNvdXJjZXMgd2l0aC4K
KyAgICAgICAgV2ViR3JhcGhpY3NDb250ZXh0M0QqIHZpZXdDb250ZXh0ID0gd2ViVmlldy0+Z3Jh
cGhpY3NDb250ZXh0M0QoKTsKKyAgICAgICAgaWYgKHZpZXdDb250ZXh0KSB7CisgICAgICAgICAg
ICBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsKiBjb250ZXh0SW1wbCA9IHN0YXRpY19j
YXN0PFdlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwqPih2aWV3Q29udGV4dCk7CisgICAg
ICAgICAgICBzaGFyZUNvbnRleHQgPSBjb250ZXh0SW1wbC0+bV9nbENvbnRleHQuZ2V0KCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBUaGUgY29tcG9zaXRvcidzIGNvbnRleHQg
ZGlkbid0IGdldCBjcmVhdGVkCisgICAgICAgICAgICAvLyBzdWNjZXNzZnVsbHksIHNvIGNvbmNl
cHR1YWxseSB0aGVyZSBpcyBubyB3YXkgd2UgY2FuCisgICAgICAgICAgICAvLyByZW5kZXIgc3Vj
Y2Vzc2Z1bGx5IHRvIHRoZSBXZWJWaWV3LgorICAgICAgICAgICAgbV9yZW5kZXJEaXJlY3RseVRv
V2ViVmlldyA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGhpcyBpbXBsZW1l
bnRhdGlvbiBhbHdheXMgcmVuZGVycyBvZmZzY3JlZW4gcmVnYXJkbGVzcyBvZgorICAgIC8vIHdo
ZXRoZXIgcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcgaXMgdHJ1ZS4gQm90aCBEdW1wUmVuZGVyVHJl
ZQorICAgIC8vIGFuZCB0ZXN0X3NoZWxsIHBhaW50IGZpcnN0IHRvIGFuIGludGVybWVkaWF0ZSBv
ZmZzY3JlZW4gYnVmZmVyCisgICAgLy8gYW5kIGZyb20gdGhlcmUgdG8gdGhlIHdpbmRvdywgYW5k
IFdlYlZpZXdJbXBsOjpwYWludCBhbHJlYWR5CisgICAgLy8gY29ycmVjdGx5IGhhbmRsZXMgdGhl
IGNhc2Ugd2hlcmUgdGhlIGNvbXBvc2l0b3IgaXMgYWN0aXZlIGJ1dAorICAgIC8vIHRoZSBvdXRw
dXQgbmVlZHMgdG8gZ28gdG8gYSBXZWJDYW52YXMuCisgICAgbV9nbENvbnRleHQgPSBXVEY6OmFk
b3B0UHRyKGdmeDo6R0xDb250ZXh0OjpDcmVhdGVPZmZzY3JlZW5HTENvbnRleHQoc2hhcmVDb250
ZXh0KSk7CiAgICAgaWYgKCFtX2dsQ29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgbV9hdHRyaWJ1dGVzID0gYXR0cmlidXRlczsKKworICAgIC8vIEZJWE1FOiBmb3IgdGhlIG1v
bWVudCB3ZSBkaXNhYmxlIG11bHRpc2FtcGxpbmcgZm9yIHRoZSBjb21wb3NpdG9yLgorICAgIC8v
IEl0IGFjdHVhbGx5IHdvcmtzIGluIHRoaXMgaW1wbGVtZW50YXRpb24sIGJ1dCB0aGVyZSBhcmUg
YSBmZXcKKyAgICAvLyBjb25zaWRlcmF0aW9ucy4gRmlyc3QsIHdlIGxpa2VseSB3YW50IHRvIHJl
ZHVjZSB0aGUgZnV6emluZXNzIGluCisgICAgLy8gdGhlc2UgdGVzdHMgYXMgbXVjaCBhcyBwb3Nz
aWJsZSBiZWNhdXNlIHdlIHdhbnQgdG8gcnVuIHBpeGVsIHRlc3RzLgorICAgIC8vIFNlY29uZCwg
TWVzYSdzIG11bHRpc2FtcGxpbmcgZG9lc24ndCBzZWVtIHRvIGFudGlhbGlhcyBzdHJhaWdodAor
ICAgIC8vIGVkZ2VzIGluIHNvbWUgQ1NTIDNEIHNhbXBsZXMuIFRoaXJkLCB3ZSBkb24ndCBoYXZl
IG11bHRpc2FtcGxpbmcKKyAgICAvLyBzdXBwb3J0IGZvciB0aGUgY29tcG9zaXRvciBpbiB0aGUg
bm9ybWFsIGNhc2UgYXQgdGhlIHRpbWUgb2YgdGhpcworICAgIC8vIHdyaXRpbmcuCisgICAgaWYg
KHJlbmRlckRpcmVjdGx5VG9XZWJWaWV3KQorICAgICAgICBtX2F0dHJpYnV0ZXMuYW50aWFsaWFz
ID0gZmFsc2U7CisKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKIAogICAgIGdsRW5hYmxlKEdM
X1ZFUlRFWF9QUk9HUkFNX1BPSU5UX1NJWkUpOwpAQCAtMTY1LDYgKzE5NywxOCBAQCB2b2lkIFdl
YkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OnZhCiAgICAgbV9hdHRyaWJ1dGVzLnByZW11
bHRpcGxpZWRBbHBoYSA9IHRydWU7CiB9CiAKK3ZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZh
dWx0SW1wbDo6cmVzb2x2ZU11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKHVuc2lnbmVkIHgsIHVuc2ln
bmVkIHksIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgaWYgKG1fYXR0
cmlidXRlcy5hbnRpYWxpYXMpIHsKKyAgICAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IChtX2Jv
dW5kRkJPICE9IG1fbXVsdGlzYW1wbGVGQk8pOworICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVY
VChHTF9SRUFEX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CisgICAgICAgIGds
QmluZEZyYW1lYnVmZmVyRVhUKEdMX0RSQVdfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CisgICAg
ICAgIGdsQmxpdEZyYW1lYnVmZmVyRVhUKHgsIHksIHggKyB3aWR0aCwgeSArIGhlaWdodCwgeCwg
eSwgeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCBHTF9DT0xPUl9CVUZGRVJfQklULCBHTF9MSU5FQVIp
OworICAgICAgICBpZiAobXVzdFJlc3RvcmVGQk8pCisgICAgICAgICAgICBnbEJpbmRGcmFtZWJ1
ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fYm91bmRGQk8pOworICAgIH0KK30KKwogYm9v
bCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjptYWtlQ29udGV4dEN1cnJlbnQoKQog
ewogICAgIHJldHVybiBtX2dsQ29udGV4dC0+TWFrZUN1cnJlbnQoKTsKQEAgLTIxOCwxMyArMjYy
LDE1IEBAIGJvb2wgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6aXMKIAogdW5zaWdu
ZWQgaW50IFdlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6OmdldFBsYXRmb3JtVGV4dHVy
ZUlkKCkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gbV90ZXh0dXJlOwogfQogCiB2b2lkIFdlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdElt
cGw6OnByZXBhcmVUZXh0dXJlKCkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBp
ZiAoIW1fcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcpIHsKKyAgICAgICAgLy8gV2UgbmVlZCB0byBw
cmVwYXJlIG91ciByZW5kZXJpbmcgcmVzdWx0cyBmb3IgdGhlIGNvbXBvc2l0b3IuCisgICAgICAg
IHJlc29sdmVNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcigwLCAwLCBtX2NhY2hlZFdpZHRoLCBtX2Nh
Y2hlZEhlaWdodCk7CisgICAgfQogfQogCiBzdGF0aWMgaW50IGNyZWF0ZVRleHR1cmVPYmplY3Qo
R0xlbnVtIHRhcmdldCkKQEAgLTQzNCwxOSArNDgwLDggQEAgYm9vbCBXZWJHcmFwaGljc0NvbnRl
eHQzRERlZmF1bHRJbXBsOjpyZQogICAgIC8vIHZlcnRpY2FsIGZsaXAgaXMgb25seSBhIHRlbXBv
cmFyeSBzb2x1dGlvbiBhbnl3YXkgdW50aWwgQ2hyb21lCiAgICAgLy8gaXMgZnVsbHkgR1BVIGNv
bXBvc2l0ZWQsIGl0IHdhc24ndCB3b3J0aCB0aGUgY29tcGxleGl0eS4KIAotICAgIGJvb2wgbXVz
dFJlc3RvcmVGQk8gPSBmYWxzZTsKLSAgICBpZiAobV9hdHRyaWJ1dGVzLmFudGlhbGlhcykgewot
ICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9SRUFEX0ZSQU1FQlVGRkVSX0VYVCwgbV9t
dWx0aXNhbXBsZUZCTyk7Ci0gICAgICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0RSQVdfRlJB
TUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIGdsQmxpdEZyYW1lYnVmZmVyRVhUKDAsIDAs
IG1fY2FjaGVkV2lkdGgsIG1fY2FjaGVkSGVpZ2h0LCAwLCAwLCBtX2NhY2hlZFdpZHRoLCBtX2Nh
Y2hlZEhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTElORUFSKTsKLSAgICAgICAgZ2xC
aW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIG11
c3RSZXN0b3JlRkJPID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobV9ib3VuZEZC
TyAhPSBtX2ZibykgewotICAgICAgICAgICAgbXVzdFJlc3RvcmVGQk8gPSB0cnVlOwotICAgICAg
ICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7Ci0g
ICAgICAgIH0KLSAgICB9CisgICAgcmVzb2x2ZU11bHRpc2FtcGxlZEZyYW1lYnVmZmVyKDAsIDAs
IG1fY2FjaGVkV2lkdGgsIG1fY2FjaGVkSGVpZ2h0KTsKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlckVY
VChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fZmJvKTsKIAogICAgIEdMaW50IHBhY2tBbGlnbm1lbnQg
PSA0OwogICAgIGJvb2wgbXVzdFJlc3RvcmVQYWNrQWxpZ25tZW50ID0gZmFsc2U7CkBAIC00NjMs
OCArNDk4LDcgQEAgYm9vbCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjpyZQogICAg
IGlmIChtdXN0UmVzdG9yZVBhY2tBbGlnbm1lbnQpCiAgICAgICAgIGdsUGl4ZWxTdG9yZWkoR0xf
UEFDS19BTElHTk1FTlQsIHBhY2tBbGlnbm1lbnQpOwogCi0gICAgaWYgKG11c3RSZXN0b3JlRkJP
KQotICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fYm91
bmRGQk8pOworICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9i
b3VuZEZCTyk7CiAKICNpZmRlZiBGTElQX0ZSQU1FQlVGRkVSX1ZFUlRJQ0FMTFkKICAgICBpZiAo
cGl4ZWxzKQpAQCAtNzA0LDE2ICs3MzgsMTUgQEAgdm9pZCBXZWJHcmFwaGljc0NvbnRleHQzRERl
ZmF1bHRJbXBsOjpjbwogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0gICAgaWYgKG1f
YXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgbV9ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7
Ci0gICAgICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX1JFQURfRlJBTUVCVUZGRVJfRVhULCBt
X211bHRpc2FtcGxlRkJPKTsKLSAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRFJBV19G
UkFNRUJVRkZFUl9FWFQsIG1fZmJvKTsKLSAgICAgICAgZ2xCbGl0RnJhbWVidWZmZXJFWFQoeCwg
eSwgeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCB4LCB5LCB4ICsgd2lkdGgsIHkgKyBoZWlnaHQsIEdM
X0NPTE9SX0JVRkZFUl9CSVQsIEdMX0xJTkVBUik7CisgICAgYm9vbCBuZWVkc1Jlc29sdmUgPSAo
bV9hdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBtX2JvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8p
OworICAgIGlmIChuZWVkc1Jlc29sdmUpIHsKKyAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxlZEZy
YW1lYnVmZmVyKHgsIHksIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZl
ckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fZmJvKTsKICAgICB9CiAKICAgICBnbENvcHlUZXhJ
bWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0
LCBib3JkZXIpOwogCi0gICAgaWYgKG1fYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgbV9ib3VuZEZC
TyA9PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChuZWVkc1Jlc29sdmUpCiAgICAgICAgIGds
QmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9ib3VuZEZCTyk7CiB9CiAK
QEAgLTcyMiwxNiArNzU1LDE1IEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1w
bDo6Y28KIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAotICAgIGlmIChtX2F0dHJpYnV0
ZXMuYW50aWFsaWFzICYmIG1fYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewotICAgICAg
ICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9SRUFEX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNh
bXBsZUZCTyk7Ci0gICAgICAgIGdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0RSQVdfRlJBTUVCVUZG
RVJfRVhULCBtX2Zibyk7Ci0gICAgICAgIGdsQmxpdEZyYW1lYnVmZmVyRVhUKHgsIHksIHggKyB3
aWR0aCwgeSArIGhlaWdodCwgeCwgeSwgeCArIHdpZHRoLCB5ICsgaGVpZ2h0LCBHTF9DT0xPUl9C
VUZGRVJfQklULCBHTF9MSU5FQVIpOworICAgIGJvb2wgbmVlZHNSZXNvbHZlID0gKG1fYXR0cmli
dXRlcy5hbnRpYWxpYXMgJiYgbV9ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKTsKKyAgICBp
ZiAobmVlZHNSZXNvbHZlKSB7CisgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZl
cih4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xf
RlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CiAgICAgfQogCiAgICAgZ2xDb3B5VGV4U3ViSW1hZ2Uy
RCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsK
IAotICAgIGlmIChtX2F0dHJpYnV0ZXMuYW50aWFsaWFzICYmIG1fYm91bmRGQk8gPT0gbV9tdWx0
aXNhbXBsZUZCTykKKyAgICBpZiAobmVlZHNSZXNvbHZlKQogICAgICAgICBnbEJpbmRGcmFtZWJ1
ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fYm91bmRGQk8pOwogfQogCkBAIC0xMTA1LDE3
ICsxMTM3LDE2IEBAIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbDo6cmUKICAg
ICAvLyBGSVhNRTogcmVtb3ZlIHRoZSB0d28gZ2xGbHVzaCBjYWxscyB3aGVuIHRoZSBkcml2ZXIg
YnVnIGlzIGZpeGVkLCBpLmUuLAogICAgIC8vIGFsbCBwcmV2aW91cyByZW5kZXJpbmcgY2FsbHMg
c2hvdWxkIGJlIGRvbmUgYmVmb3JlIHJlYWRpbmcgcGl4ZWxzLgogICAgIGdsRmx1c2goKTsKLSAg
ICBpZiAobV9hdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBtX2JvdW5kRkJPID09IG1fbXVsdGlzYW1w
bGVGQk8pIHsKLSAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfUkVBRF9GUkFNRUJVRkZF
Ul9FWFQsIG1fbXVsdGlzYW1wbGVGQk8pOwotICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChH
TF9EUkFXX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8pOwotICAgICAgICBnbEJsaXRGcmFtZWJ1ZmZl
ckVYVCh4LCB5LCB4ICsgd2lkdGgsIHkgKyBoZWlnaHQsIHgsIHksIHggKyB3aWR0aCwgeSArIGhl
aWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTElORUFSKTsKKyAgICBib29sIG5lZWRzUmVz
b2x2ZSA9IChtX2F0dHJpYnV0ZXMuYW50aWFsaWFzICYmIG1fYm91bmRGQk8gPT0gbV9tdWx0aXNh
bXBsZUZCTyk7CisgICAgaWYgKG5lZWRzUmVzb2x2ZSkgeworICAgICAgICByZXNvbHZlTXVsdGlz
YW1wbGVkRnJhbWVidWZmZXIoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIGdsQmluZEZy
YW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9mYm8pOwogICAgICAgICBnbEZsdXNo
KCk7CiAgICAgfQogCiAgICAgZ2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1h
dCwgdHlwZSwgcGl4ZWxzKTsKIAotICAgIGlmIChtX2F0dHJpYnV0ZXMuYW50aWFsaWFzICYmIG1f
Ym91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAgICBpZiAobmVlZHNSZXNvbHZlKQogICAg
ICAgICBnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fYm91bmRGQk8p
OwogfQogCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVm
YXVsdEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdyYXBoaWNz
Q29udGV4dDNERGVmYXVsdEltcGwuaAkocmV2aXNpb24gNjg2OTIpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtMjczLDYgKzI3Myw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViR3JhcGhpY3NDb250
ZXh0M0Q6OkF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVzOwogICAgIGJvb2wgbV9pbml0aWFsaXplZDsK
KyAgICBib29sIG1fcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXc7CisKICAgICB1bnNpZ25lZCBpbnQg
bV90ZXh0dXJlOwogICAgIHVuc2lnbmVkIGludCBtX2ZibzsKICAgICB1bnNpZ25lZCBpbnQgbV9k
ZXB0aFN0ZW5jaWxCdWZmZXI7CkBAIC0yOTgsNiArMzAwLDkgQEAgcHJpdmF0ZToKICAgICAvLyBu
b3QgYmUgaG9ub3JlZCBiYXNlZCBvbiB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBPcGVuR0wgaW1w
bGVtZW50YXRpb24uCiAgICAgdm9pZCB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKIAorICAgIC8vIFJl
c29sdmUgdGhlIGdpdmVuIHJlY3RhbmdsZSBvZiB0aGUgbXVsdGlzYW1wbGVkIGZyYW1lYnVmZmVy
IGlmIG5lY2Vzc2FyeS4KKyAgICB2b2lkIHJlc29sdmVNdWx0aXNhbXBsZWRGcmFtZWJ1ZmZlcih1
bnNpZ25lZCB4LCB1bnNpZ25lZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsK
KwogICAgIC8vIE5vdGU6IHdlIGFyZW4ndCBjdXJyZW50bHkgdXNpbmcgdGhpcyBpbmZvcm1hdGlv
biwgYnV0IHdlIHdpbGwKICAgICAvLyBuZWVkIHRvIGluIG9yZGVyIHRvIHZlcmlmeSB0aGF0IGFs
bCBlbmFibGVkIHZlcnRleCBhcnJheXMgaGF2ZQogICAgIC8vIGEgdmFsaWQgYnVmZmVyIGJvdW5k
IC0tIHRvIGF2b2lkIGNyYXNoZXMgb24gY2VydGFpbiBjYXJkcy4KSW5kZXg6IFdlYktpdFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDY4NzA2KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzUgQEAKKzIwMTAtMDktMjkgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1
bV0gQWRkIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnQgdG8gRHVtcFJlbmRlclRyZWUg
YW5kIHRlc3Rfc2hlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2ODQ5CisKKyAgICAgICAgQWRkZWQgb2Zmc2NyZWVuIGNvZGUgcGF0aCBmb3IgV2Vi
R3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbCB3aGljaAorICAgICAgICB3b3JrcyB3aXRoIHRo
ZSBjb21wb3NpdG9yIGludGVncmF0aW9uIGluIGJvdGggRHVtcFJlbmRlclRyZWUgYW5kCisgICAg
ICAgIHRlc3Rfc2hlbGwsIHNpbmNlIGJvdGggcGFzcyBhIG5vbi1udWxsIFdlYkNhbnZhcyogdG8g
V2ViVmlld0ltcGw6OnBhaW50CisgICAgICAgIGFuZCB0aGVyZWJ5IHRyaWdnZXIgdGhlIGNvbXBv
c2l0b3IncyByZWFkYmFjayBjb2RlIHBhdGguIEFkZGVkIHN1cHBvcnQKKyAgICAgICAgZm9yIC0t
ZW5hYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nIHRvIER1bXBSZW5kZXJUcmVlLgorCisgICAg
ICAgIFRlc3RlZCBpbiBib3RoIHRlc3Rfc2hlbGwgYW5kIER1bXBSZW5kZXJUcmVlIG9uIExpbnV4
LCB0aGUgbGF0dGVyIGJ5CisgICAgICAgIG1vZGlmeWluZyBhIGNvbXBvc2l0aW5nIGxheW91dCB0
ZXN0LCBkdW1waW5nIHRoZSBwaXhlbHMgYW5kIHZlcmlmeWluZworICAgICAgICB0aGF0IHRoZXkg
bWF0Y2hlZCB0aGUgb3V0cHV0IHdoZW4gdGhlIGNvbXBvc2l0b3Igd2FzIGFjdGl2ZS4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5j
cHA6CisgICAgICAgIChUZXN0U2hlbGw6OlRlc3RTaGVsbCk6CisgICAgICAgIChUZXN0U2hlbGw6
OnJlc2V0V2ViU2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5j
ZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnJlc2V0KToKKyAgICAgICAgKFdlYlBy
ZWZlcmVuY2VzOjphcHBseVRvKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpzY2hlZHVsZUNvbXBvc2l0ZSk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKwogMjAxMC0w
OS0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAkocmV2aXNpb24gNjg2NTMpCisr
KyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9u
VGVzdFNoZWxsW10gPSAiLQogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uQWxsb3dFeHRlcm5hbFBh
Z2VzW10gPSAiLS1hbGxvdy1leHRlcm5hbC1wYWdlcyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRp
b25TdGFydHVwRGlhbG9nW10gPSAiLS10ZXN0c2hlbGwtc3RhcnR1cC1kaWFsb2ciOwogc3RhdGlj
IGNvbnN0IGNoYXIgb3B0aW9uQ2hlY2tMYXlvdXRUZXN0U3lzdGVtRGVwc1tdID0gIi0tY2hlY2st
bGF5b3V0LXRlc3Qtc3lzLWRlcHMiOworc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5n
IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkMkRDYW52YXNbXSA9
ICItLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMiOwogCiBzdGF0aWMgdm9pZCBydW5UZXN0
KFRlc3RTaGVsbCYgc2hlbGwsIFRlc3RQYXJhbXMmIHBhcmFtcywgY29uc3Qgc3RyaW5nJiB0ZXN0
TmFtZSwgYm9vbCB0ZXN0U2hlbGxNb2RlKQpAQCAtOTMsNiArOTQsNyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciogYXJndltdKQogICAgIGJvb2wgdGVzdFNoZWxsTW9kZSA9IGZhbHNlOwogICAg
IGJvb2wgYWxsb3dFeHRlcm5hbFBhZ2VzID0gZmFsc2U7CiAgICAgYm9vbCBzdGFydHVwRGlhbG9n
ID0gZmFsc2U7CisgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNl
OwogICAgIGJvb2wgYWNjZWxlcmF0ZWQyRENhbnZhc0VuYWJsZWQgPSBmYWxzZTsKICAgICBmb3Ig
KGludCBpID0gMTsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBzdHJpbmcgYXJndW1lbnQoYXJn
dltpXSk7CkBAIC0xMTQsNiArMTE2LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3Zb
XSkKICAgICAgICAgICAgIHN0YXJ0dXBEaWFsb2cgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChh
cmd1bWVudCA9PSBvcHRpb25DaGVja0xheW91dFRlc3RTeXN0ZW1EZXBzKQogICAgICAgICAgICAg
ZXhpdChjaGVja0xheW91dFRlc3RTeXN0ZW1EZXBlbmRlbmNpZXMoKSA/IEVYSVRfU1VDQ0VTUyA6
IEVYSVRfRkFJTFVSRSk7CisgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVuYWJs
ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcpCisgICAgICAgICAgICBhY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbkVu
YWJsZUFjY2VsZXJhdGVkMkRDYW52YXMpCiAgICAgICAgICAgICBhY2NlbGVyYXRlZDJEQ2FudmFz
RW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50LnNpemUoKSAmJiBhcmd1
bWVudFswXSA9PSAnLScpCkBAIC0xMzIsNiArMTM2LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIqIGFyZ3ZbXSkKICAgICB7IC8vIEV4cGxpY2l0IHNjb3BlIGZvciB0aGUgVGVzdFNoZWxsIGlu
c3RhbmNlLgogICAgICAgICBUZXN0U2hlbGwgc2hlbGwodGVzdFNoZWxsTW9kZSk7CiAgICAgICAg
IHNoZWxsLnNldEFsbG93RXh0ZXJuYWxQYWdlcyhhbGxvd0V4dGVybmFsUGFnZXMpOworICAgICAg
ICBzaGVsbC5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkKGFjY2VsZXJhdGVkMkRDYW52YXNFbmFibGVkKTsKICAgICAgICAgaWYgKHNlcnZlck1vZGUg
JiYgIXRlc3RzLnNpemUoKSkgewogICAgICAgICAgICAgcGFyYW1zLnByaW50U2VwYXJhdG9ycyA9
IHRydWU7CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5jcHAJKHJldmlzaW9uIDY4NjUzKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMs
NyBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbChib29sIHRlc3RTaGVsbE1vZGUpCiAgICAgLCBtX2Zv
Y3VzZWRXaWRnZXQoMCkKICAgICAsIG1fdGVzdFNoZWxsTW9kZSh0ZXN0U2hlbGxNb2RlKQogICAg
ICwgbV9hbGxvd0V4dGVybmFsUGFnZXMoZmFsc2UpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChm
YWxzZSkKICAgICAsIG1fZGV2VG9vbHMoMCkKIHsKQEAgLTE1Niw2ICsxNTcsNyBAQCB2b2lkIFRl
c3RTaGVsbDo6Y2xvc2VEZXZUb29scygpCiB2b2lkIFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5n
cyhXZWJWaWV3JiB3ZWJWaWV3KQogewogICAgIG1fcHJlZnMucmVzZXQoKTsKKyAgICBtX3ByZWZz
LmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZDsKICAgICBtX3ByZWZzLmFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gbV9hY2Nl
bGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBtX3ByZWZzLmFwcGx5VG8oJndlYlZpZXcpOwog
fQpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmgJKHJldmlzaW9uIDY4NjUzKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBhbGxvd0V4dGVybmFsUGFnZXMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
RXh0ZXJuYWxQYWdlczsgfQogICAgIHZvaWQgc2V0QWxsb3dFeHRlcm5hbFBhZ2VzKGJvb2wgYWxs
b3dFeHRlcm5hbFBhZ2VzKSB7IG1fYWxsb3dFeHRlcm5hbFBhZ2VzID0gYWxsb3dFeHRlcm5hbFBh
Z2VzOyB9CiAKKyAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wg
ZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZW5hYmxlZDsgfQog
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1f
YWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgPSBlbmFibGVkOyB9CiAKICNpZiBkZWZpbmVkKE9T
X1dJTikKQEAgLTE3OCw2ICsxNzksNyBAQCBwcml2YXRlOgogICAgIFRlc3RQYXJhbXMgbV9wYXJh
bXM7CiAgICAgaW50IG1fdGltZW91dDsgLy8gdGltZW91dCB2YWx1ZSBpbiBtaWxsaXNlY29uZAog
ICAgIGJvb2wgbV9hbGxvd0V4dGVybmFsUGFnZXM7CisgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkOwogICAgIGJvb2wgbV9hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsK
ICAgICBXZWJQcmVmZXJlbmNlcyBtX3ByZWZzOwogCkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lv
biA2ODY1MykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZl
cmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDYgKzEwMiw3IEBAIHZvaWQgV2ViUHJl
ZmVyZW5jZXM6OnJlc2V0KCkKIAogICAgIHRhYnNUb0xpbmtzID0gZmFsc2U7CiAgICAgaHlwZXJs
aW5rQXVkaXRpbmdFbmFibGVkID0gZmFsc2U7CisgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQgPSBmYWxzZTsKICAgICBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwog
fQogCkBAIC0xNTksMTAgKzE2MCw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8oV2Vi
Vmlldyogd2UKICAgICBzZXR0aW5ncy0+c2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvck5ldmVySW5jbHVkZWQoKTsKICAgICBzZXR0aW5ncy0+c2V0VXNlc0VuY29kaW5nRGV0
ZWN0b3IoZmFsc2UpOwogICAgIHNldHRpbmdzLT5zZXRJbWFnZXNFbmFibGVkKHRydWUpOwotCi0g
ICAgLy8gRklYTUU6IGNyYnVnLmNvbS81MTg3OQotICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZChmYWxzZSk7Ci0KKyAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0VuYWJsZWQoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpOwogICAg
IHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2NlbGVyYXRlZDJkQ2Fu
dmFzRW5hYmxlZCk7CiB9CiAKSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaAkocmV2aXNpb24gNjg2NTMpCisrKyBXZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC03Nyw2ICs3Nyw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9v
bCB0YWJzVG9MaW5rczsKICAgICBib29sIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZDsKICAgICBi
b29sIGNhcmV0QnJvd3NpbmdFbmFibGVkOworICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKIAogICAgIFdl
YlByZWZlcmVuY2VzKCkgeyByZXNldCgpOyB9CkluZGV4OiBXZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCShyZXZpc2lvbiA2ODY1MykK
KysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTkyLDYgKzU5MiwxMyBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaWRT
Y3JvbGxSZWN0KGludCwgaW50CiAgICAgZGlkSW52YWxpZGF0ZVJlY3QoY2xpcFJlY3QpOwogfQog
Cit2b2lkIFdlYlZpZXdIb3N0OjpzY2hlZHVsZUNvbXBvc2l0ZSgpCit7CisgICAgV2ViU2l6ZSB3
aWRnZXRTaXplID0gd2ViV2lkZ2V0KCktPnNpemUoKTsKKyAgICBXZWJSZWN0IGNsaWVudFJlY3Qo
MCwgMCwgd2lkZ2V0U2l6ZS53aWR0aCwgd2lkZ2V0U2l6ZS5oZWlnaHQpOworICAgIGRpZEludmFs
aWRhdGVSZWN0KGNsaWVudFJlY3QpOworfQorCiB2b2lkIFdlYlZpZXdIb3N0OjpkaWRGb2N1cygp
CiB7CiAgICAgbV9zaGVsbC0+c2V0Rm9jdXMod2ViV2lkZ2V0KCksIHRydWUpOwpJbmRleDogV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCShy
ZXZpc2lvbiA2ODY1MykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlZpZXdIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsNyBAQCBjbGFzcyBXZWJW
aWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpCiAgICAgLy8gV2ViS2l0OjpXZWJXaWRnZXRD
bGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlkSW52YWxpZGF0ZVJlY3QoY29uc3QgV2ViS2l0OjpX
ZWJSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNjcm9sbFJlY3QoaW50IGR4LCBpbnQgZHks
IGNvbnN0IFdlYktpdDo6V2ViUmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBv
c2l0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1cygpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRCbHVyKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUN1cnNvcihjb25zdCBXZWJLaXQ6
OldlYkN1cnNvckluZm8mKTsK
</data>
<flag name="review"
          id="58941"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="58942"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>