<?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>83413</bug_id>
          
          <creation_ts>2012-04-06 17:13:27 -0700</creation_ts>
          <short_desc>[chromium] CCLayerTreeHost / WebLayerTreeView should be single ownership, not RefCounted</short_desc>
          <delta_ts>2012-04-09 14:41:07 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>nduca</cc>
    
    <cc>piman</cc>
    
    <cc>tkent</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>597834</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-06 17:13:27 -0700</bug_when>
    <thetext>[chromium] CCLayerTreeHost / WebLayerTreeView should be single ownership, not RefCounted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597839</commentid>
    <comment_count>1</comment_count>
      <attachid>136105</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-06 17:18:00 -0700</bug_when>
    <thetext>Created attachment 136105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597841</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-06 17:20:13 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597860</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2012-04-06 17:54:04 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597881</commentid>
    <comment_count>4</comment_count>
      <attachid>136105</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-06 18:16:42 -0700</bug_when>
    <thetext>Comment on attachment 136105
Patch

R=me.  This is great! I love the m_client cleanup too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597886</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-06 18:27:31 -0700</bug_when>
    <thetext>Thanks for the quick reviews. http://codereview.chromium.org/10023004 needs to land before this can.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598602</commentid>
    <comment_count>6</comment_count>
      <attachid>136105</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-09 14:08:03 -0700</bug_when>
    <thetext>Comment on attachment 136105
Patch

http://src.chromium.org/viewvc/chrome?view=rev&amp;revision=131399</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598622</commentid>
    <comment_count>7</comment_count>
      <attachid>136105</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-09 14:41:01 -0700</bug_when>
    <thetext>Comment on attachment 136105
Patch

Clearing flags on attachment: 136105

Committed r113623: &lt;http://trac.webkit.org/changeset/113623&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598624</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-09 14:41:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136105</attachid>
            <date>2012-04-06 17:18:00 -0700</date>
            <delta_ts>2012-04-09 14:41:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83413-20120406171759.patch</filename>
            <type>text/plain</type>
            <size>26505</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzNTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhMThmMDA3YTE4MjNi
MTY4NzQyYjA1YmMxMmZkMTQ3MWQyMTgxYmJkLi4zMDZmN2IzNmRhNjUwZTg2NzA0MWZmNjcxNjNm
NzEyNTdkY2RlMWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNC0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQ0NMYXllclRyZWVIb3N0IC8gV2ViTGF5ZXJUcmVlVmlldyBzaG91bGQgYmUgc2luZ2xlIG93
bmVyc2hpcCwgbm90IFJlZkNvdW50ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgzNDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBtYWtlcyBXZWJMYXllclRyZWVWaWV3IG5vbmNvcHlhYmxlIHRv
IGJldHRlciBtYXRjaCB0aGUgdW5kZXJseWluZyBzZW1hbnRpY3MuIFRoZXJlIGlzIG5vIGNvZGUg
Y3VycmVudGx5CisgICAgICAgIHRoYXQgYXR0ZW1wdHMgdG8gY29weSBXZWJMYXllclRyZWVWaWV3
IGluc3RhbmNlcy4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViTGF5ZXJUcmVlVmlldyk6CisKIDIw
MTItMDQtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBmaWd1
cmUgb3V0IGhvdyB0byBleHBvcnQgd2ViY29yZSBzeW1ib2xzIGZyb20gd2Via2l0LmRsbCBwcm9w
ZXJseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDMyNzhkNjJiYjhmZmMzM2YzNzRmYTU1NWRkMDM2MTVhZmM3Mzg1
NDQuLmU2MGQwYTU1Yzg4MGU4ZWI4MzhiZWE5YTE5MTFiMzZkZDEzNjVlOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMCBAQAorMjAxMi0wNC0wNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQ0NMYXllclRyZWVIb3N0IC8gV2ViTGF5
ZXJUcmVlVmlldyBzaG91bGQgYmUgc2luZ2xlIG93bmVyc2hpcCwgbm90IFJlZkNvdW50ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNDEzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ0NMYXllclRyZWVI
b3N0IGFsd2F5cyBoYXMgYSBzaW5nbGUgbG9naWNhbCBvd25lciwgdHlwaWNhbGx5IGEgV2ViTGF5
ZXJUcmVlVmlldyB2aWEgZWl0aGVyIFdlYlZpZXdJbXBsIG9yIHRoZQorICAgICAgICBwdWJsaWMg
QVBJLiBJdCBpcyBjdXJyZW50bHkgcmVmY291bnRlZCBmb3IgaGlzdG9yaWNhbCByZWFzb25zIGJ1
dCB0aGlzIGlzbid0IG5lY2Vzc2FyeSBhbmQgYWRkcyBjb25mdXNpb24uCisgICAgICAgIENDTGF5
ZXJUcmVlSG9zdCBpbnN0YW5jZXMgYW5kIHBvaW50ZXJzIGFyZSBjYXJlZnVsbHkgbWFuYWdlZCBj
dXJyZW50bHkgdG8gYXZvaWQgbGVha3MuIEluIHBhcnRpY3VsYXIsIHdoaWxlCisgICAgICAgIExh
eWVyQ2hyb21pdW0gaW5zdGFuY2VzIGhvbGQgUmVmUHRyPENDTGF5ZXJUcmVlSG9zdD5zLCB3aGVu
ZXZlciB3ZSB3YW50IHRvIGRlc3Ryb3kgYSBDQ0xheWVyVHJlZUhvc3Qgd2UKKyAgICAgICAgcHJv
YWN0aXZlbHkgY2xlYXIgb3V0IHRoZXNlIHJlZmVyZW5jZXMgaW5zaWRlIHNldFJvb3RMYXllcigp
IHRvIGJyZWFrIHRoZSBjeWNsZS4KKworICAgICAgICBSZWZhY3RvciBjb3ZlcmVkIGJ5IGV4aXN0
aW5nIHVuaXQgYW5kIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJv
bWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpz
ZXRNYXNrTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0UmVwbGlj
YUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpsYXllclRyZWVIb3N0KToK
KyAgICAgICAgKExheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
VHJlZUhvc3Q6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3QpOgorCiAyMDEy
LTA0LTA2ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBG
aXggYnVnIGluIENvbnRhaW5lck5vZGU6OmdldFJlY3Qgd2l0aCBzY2FsZSB0cmFuc2Zvcm1zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDljYTYzZGFkOTJjMWI0NzliMWY4NjdlMzk1ZGE4
YTBjMTQ4ZmY5YjkuLjVkMzNhZDQ5MjBjMzRhN2MzODA0OTYzZGRlZjVmMWY1ODllMGYyNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTItMDQtMDYgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IENDTGF5ZXJUcmVlSG9zdCAvIFdlYkxheWVyVHJlZVZpZXcgc2hvdWxkIGJlIHNpbmdsZSBvd25l
cnNoaXAsIG5vdCBSZWZDb3VudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MzQxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZXMgdGVzdHMgYW5kIGltcGxlbWVudGF0aW9uIGZvciBSZWZQdHIt
Pk93blB0ciBzd2l0Y2guIE9uZSBuaWNlIGJlbmVmaXQgaXMgdGhhdCBzaW5jZSBXZWJMYXllclRy
ZWVWaWV3IGlzCisgICAgICAgIGV4cGxpY2l0bHkgb3duZWQgYnkgdGhlIHVzZXIgb2YgdGhlIEFQ
SSB3ZSBjYW4gc2FmZWx5IHJlbHkgb24gdGhlbSBtYW5hZ2luZyB0aGUgbGlmZXRpbWUgb2YgdGhl
IGNsaWVudCBhbmQgdGh1cworICAgICAgICBkb24ndCBoYXZlIHRvIG51bGwgY2hlY2sgdGhlIGNs
aWVudCBhbGwgdGhlIHRpbWUuCisKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXc6OnJlc2V0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6aXNOdWxsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5
ZXJUcmVlVmlldzo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjp3aWxsQmVnaW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25z
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmxheW91dCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZUNvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6ZGlkUmVjcmVhdGVDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmRpZENvbW1pdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpkaWRDb21taXRBbmREcmF3RnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6ZGlkQ29tcGxldGVT
d2FwQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpzY2hl
ZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmg6Cisg
ICAgICAgIChXZWJMYXllclRyZWVWaWV3SW1wbCk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRy
ZWVIb3N0VGVzdC5jcHA6CisgICAgICAgIChXVEY6Ok1vY2tMYXllclRyZWVIb3N0OjpjcmVhdGUp
OgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0VGVzdCk6CisgICAgICAgICogdGVzdHMvQ2FudmFz
MkRMYXllckNocm9taXVtVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvTGF5ZXJDaHJvbWl1bVRl
c3QuY3BwOgorICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorICAg
ICAgICAoV1RGOjpURVNUKToKKwogMjAxMi0wNC0wNiAgQW1pIEZpc2NobWFuICA8ZmlzY2htYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgQ2hyb21pdW0gREVQUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmggYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaAppbmRleCAyYTE2
Yzg2NzA1YzNiOTJjY2I0ZThlZDRjMGI5YTNkNjBmYTIxY2Y0Li41YzljY2Q4M2RmNDJjYzU2MzE0
MDRjYTA0YWU5MDBiZmM2MGNhZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAjZGVmaW5l
IFdlYkxheWVyVHJlZVZpZXdfaAogCiAjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAi
V2ViUHJpdmF0ZVB0ci5oIgorI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAi
V2ViUHJpdmF0ZU93blB0ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDQ0xheWVy
VHJlZUhvc3Q7CiBzdHJ1Y3QgQ0NTZXR0aW5nczsKIH0KIApAQCAtMzgsMTEgKzM4LDEyIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBXZWJM
YXllcjsKIGNsYXNzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ7CitjbGFzcyBXZWJMYXllclRyZWVW
aWV3SW1wbDsKIHN0cnVjdCBXZWJQb2ludDsKIHN0cnVjdCBXZWJSZWN0Owogc3RydWN0IFdlYlNp
emU7CiAKLWNsYXNzIFdlYkxheWVyVHJlZVZpZXcgeworY2xhc3MgV2ViTGF5ZXJUcmVlVmlldyA6
IHB1YmxpYyBXZWJOb25Db3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RydWN0IFNldHRpbmdzIHsK
ICAgICAgICAgU2V0dGluZ3MoKQpAQCAtNzEsMjEgKzcyLDEyIEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgV2ViTGF5ZXJUcmVlVmlldygpIHsgfQotICAgIFdlYkxheWVyVHJlZVZpZXcoY29uc3Qg
V2ViTGF5ZXJUcmVlVmlldyYgbGF5ZXIpIHsgYXNzaWduKGxheWVyKTsgfQogICAgIH5XZWJMYXll
clRyZWVWaWV3KCkgeyByZXNldCgpOyB9Ci0gICAgV2ViTGF5ZXJUcmVlVmlldyYgb3BlcmF0b3I9
KGNvbnN0IFdlYkxheWVyVHJlZVZpZXcmIGxheWVyKQotICAgIHsKLSAgICAgICAgYXNzaWduKGxh
eWVyKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KIAogICAgIFdFQktJVF9FWFBPUlQg
dm9pZCByZXNldCgpOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViTGF5
ZXJUcmVlVmlldyYpOwotICAgIFdFQktJVF9FWFBPUlQgYm9vbCBlcXVhbHMoY29uc3QgV2ViTGF5
ZXJUcmVlVmlldyYpIGNvbnN0OwogCi0gICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBt
X3ByaXZhdGUuaXNOdWxsKCk7IH0KKyAgICBib29sIGlzTnVsbCgpIGNvbnN0OwogCi0jZGVmaW5l
IFdFQkxBWUVSVFJFRVZJRVdfSEFTX0lOSVRJQUxJWkUKICAgICAvLyBJbml0aWFsaXphdGlvbiBh
bmQgbGlmZWN5Y2xlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAg
ICAvLyBBdHRlbXB0cyB0byBpbml0aWFsaXplIHRoaXMgV2ViTGF5ZXJUcmVlVmlldyB3aXRoIHRo
ZSBnaXZlbiBjbGllbnQsIHJvb3QgbGF5ZXIsIGFuZCBzZXR0aW5ncy4KQEAgLTE2OSwxOSArMTYx
LDkgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBsb3NlQ29tcG9zaXRvckNvbnRl
eHQoaW50IG51bVRpbWVzKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYlByaXZhdGVQdHI8V2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0PiBtX3ByaXZhdGU7CisgICAgV2ViUHJpdmF0ZU93blB0cjxXZWJM
YXllclRyZWVWaWV3SW1wbD4gbV9wcml2YXRlOwogfTsKIAotaW5saW5lIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBXZWJMYXllclRyZWVWaWV3JiBhLCBjb25zdCBXZWJMYXllclRyZWVWaWV3JiBiKQot
ewotICAgIHJldHVybiBhLmVxdWFscyhiKTsKLX0KLQotaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBXZWJMYXllclRyZWVWaWV3JiBhLCBjb25zdCBXZWJMYXllclRyZWVWaWV3JiBiKQotewot
ICAgIHJldHVybiAhKGEgPT0gYik7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gV2ViTGF5ZXJUcmVlVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDJhZDA5
Yjk0OGE0M2JiM2NlM2E3MTk1MWZjN2I1ZDllMTMwMGVhNTUuLjA1OTM0NTQ3ZGE5MWE1NTVmMTEz
MmI1NWQ5MjkwMWQ3NmViZGIyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC01OSw2ICs1
OSw3IEBAIExheWVyQ2hyb21pdW06OkxheWVyQ2hyb21pdW0oKQogICAgIDogbV9uZWVkc0Rpc3Bs
YXkoZmFsc2UpCiAgICAgLCBtX2xheWVySWQoc19uZXh0TGF5ZXJJZCsrKQogICAgICwgbV9wYXJl
bnQoMCkKKyAgICAsIG1fbGF5ZXJUcmVlSG9zdCgwKQogICAgICwgbV9sYXllckFuaW1hdGlvbkNv
bnRyb2xsZXIoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzKSkKICAgICAs
IG1fc2Nyb2xsYWJsZShmYWxzZSkKICAgICAsIG1fc2hvdWxkU2Nyb2xsT25NYWluVGhyZWFkKGZh
bHNlKQpAQCAtMjk0LDcgKzI5NSw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0TWFza0xheWVy
KExheWVyQ2hyb21pdW0qIG1hc2tMYXllcikKICAgICAgICAgbV9tYXNrTGF5ZXItPnNldExheWVy
VHJlZUhvc3QoMCk7CiAgICAgbV9tYXNrTGF5ZXIgPSBtYXNrTGF5ZXI7CiAgICAgaWYgKG1fbWFz
a0xheWVyKSB7Ci0gICAgICAgIG1fbWFza0xheWVyLT5zZXRMYXllclRyZWVIb3N0KG1fbGF5ZXJU
cmVlSG9zdC5nZXQoKSk7CisgICAgICAgIG1fbWFza0xheWVyLT5zZXRMYXllclRyZWVIb3N0KG1f
bGF5ZXJUcmVlSG9zdCk7CiAgICAgICAgIG1fbWFza0xheWVyLT5zZXRJc01hc2sodHJ1ZSk7CiAg
ICAgfQogICAgIHNldE5lZWRzQ29tbWl0KCk7CkBAIC0zMDgsNyArMzA5LDcgQEAgdm9pZCBMYXll
ckNocm9taXVtOjpzZXRSZXBsaWNhTGF5ZXIoTGF5ZXJDaHJvbWl1bSogbGF5ZXIpCiAgICAgICAg
IG1fcmVwbGljYUxheWVyLT5zZXRMYXllclRyZWVIb3N0KDApOwogICAgIG1fcmVwbGljYUxheWVy
ID0gbGF5ZXI7CiAgICAgaWYgKG1fcmVwbGljYUxheWVyKQotICAgICAgICBtX3JlcGxpY2FMYXll
ci0+c2V0TGF5ZXJUcmVlSG9zdChtX2xheWVyVHJlZUhvc3QuZ2V0KCkpOworICAgICAgICBtX3Jl
cGxpY2FMYXllci0+c2V0TGF5ZXJUcmVlSG9zdChtX2xheWVyVHJlZUhvc3QpOwogICAgIHNldE5l
ZWRzQ29tbWl0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAppbmRleCBiOTgwMjJiNTJkYTU4Yjkx
OTdjYmY1NDQ4Y2I2ZDQwYTlhMDdjMjcwLi5lODdiMDc0Y2IyMDE5YTkyODRhM2FkMmJkYzQ0Yzdl
M2RmYmU1NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBAIC0yMjIsNyArMjIyLDcgQEAgcHVibGlj
OgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgb2YgdGhlIGxheWVyJ3MgZGVzY2VuZGFudHMg
aGFzIGNvbnRlbnQgdG8gZHJhdy4KICAgICBib29sIGRlc2NlbmRhbnREcmF3c0NvbnRlbnQoKTsK
IAotICAgIENDTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGF5ZXJUcmVlSG9zdC5nZXQoKTsgfQorICAgIENDTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9z
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdDsgfQogCiAgICAgLy8gUmVzZXJ2ZSBh
bnkgdGV4dHVyZXMgbmVlZGVkIGZvciB0aGlzIGxheWVyLgogICAgIHZpcnR1YWwgdm9pZCByZXNl
cnZlVGV4dHVyZXMoKSB7IH0KQEAgLTI4OSw3ICsyODksMTAgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID4gbV9jaGlsZHJlbjsKICAgICBMYXllckNocm9taXVt
KiBtX3BhcmVudDsKIAotICAgIFJlZlB0cjxDQ0xheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9z
dDsKKyAgICAvLyBMYXllckNocm9taXVtIGluc3RhbmNlcyBoYXZlIGEgd2VhayBwb2ludGVyIHRv
IHRoZWlyIENDTGF5ZXJUcmVlSG9zdC4KKyAgICAvLyBUaGlzIHBvaW50ZXIgdmFsdWUgaXMgbmls
IHdoZW4gYSBMYXllckNocm9taXVtIGlzIG5vdCBpbiBhIHRyZWUgYW5kIGlzCisgICAgLy8gdXBk
YXRlZCB2aWEgc2V0TGF5ZXJUcmVlSG9zdCgpIGlmIGEgbGF5ZXIgbW92ZXMgYmV0d2VlbiB0cmVl
cy4KKyAgICBDQ0xheWVyVHJlZUhvc3QqIG1fbGF5ZXJUcmVlSG9zdDsKIAogICAgIE93blB0cjxD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcj4gbV9sYXllckFuaW1hdGlvbkNvbnRyb2xsZXI7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IGQzZmM5NzBiZDM2NzNkNzFjODIw
YmEzMzhhNmJkMDZkNDYyMzU2ZWUuLjNlMjM4MDcyMzVlOTlmNjk1ZmQxMjA0MDk0NjViZmUzOTM2
MzQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtNTYsMTIgKzU2LDEy
IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0OjphbnlMYXllclRyZWVIb3N0SW5zdGFuY2VFeGlzdHMo
KQogICAgIHJldHVybiBudW1MYXllclRyZWVJbnN0YW5jZXMgPiAwOwogfQogCi1QYXNzUmVmUHRy
PENDTGF5ZXJUcmVlSG9zdD4gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoQ0NMYXllclRyZWVIb3N0
Q2xpZW50KiBjbGllbnQsIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKQorUGFzc093blB0cjxD
Q0xheWVyVHJlZUhvc3Q+IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKENDTGF5ZXJUcmVlSG9zdENs
aWVudCogY2xpZW50LCBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncykKIHsKLSAgICBSZWZQdHI8
Q0NMYXllclRyZWVIb3N0PiBsYXllclRyZWVIb3N0ID0gYWRvcHRSZWYobmV3IENDTGF5ZXJUcmVl
SG9zdChjbGllbnQsIHNldHRpbmdzKSk7CisgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdD4gbGF5
ZXJUcmVlSG9zdCA9IGFkb3B0UHRyKG5ldyBDQ0xheWVyVHJlZUhvc3QoY2xpZW50LCBzZXR0aW5n
cykpOwogICAgIGlmICghbGF5ZXJUcmVlSG9zdC0+aW5pdGlhbGl6ZSgpKQotICAgICAgICByZXR1
cm4gMDsKLSAgICByZXR1cm4gbGF5ZXJUcmVlSG9zdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgcmV0dXJuIGxheWVyVHJlZUhvc3QucmVsZWFzZSgpOwogfQogCiBDQ0xheWVyVHJlZUhv
c3Q6OkNDTGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3RDbGllbnQqIGNsaWVudCwgY29uc3Qg
Q0NTZXR0aW5ncyYgc2V0dGluZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDlj
YTE0ZmMwNDQ4ODNhYjBjMzEwOWE5N2ZiOGJlMWIyYmEyMzcxNjEuLjFjMjJhNGQ1ZWJlMjI1YTgz
NjQ1ZjBmZWJhYzQ0NTQzMzkzOTEzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBA
IC0zNiw5ICszNiw5IEBACiAKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTIyLDkgKzEyMiwxMCBAQCBzdHJ1Y3Qg
TGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyB7CiAgICAgaW50IG1heFRleHR1cmVTaXplOwogfTsK
IAotY2xhc3MgQ0NMYXllclRyZWVIb3N0IDogcHVibGljIFJlZkNvdW50ZWQ8Q0NMYXllclRyZWVI
b3N0PiB7CitjbGFzcyBDQ0xheWVyVHJlZUhvc3QgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENDTGF5ZXJUcmVlSG9zdCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q0NMYXll
clRyZWVIb3N0PiBjcmVhdGUoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiwgY29uc3QgQ0NTZXR0aW5n
cyYpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPENDTGF5ZXJUcmVlSG9zdD4gY3JlYXRlKENDTGF5
ZXJUcmVlSG9zdENsaWVudCosIGNvbnN0IENDU2V0dGluZ3MmKTsKICAgICB2aXJ0dWFsIH5DQ0xh
eWVyVHJlZUhvc3QoKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgQ0NMYXllclRyZWVI
b3N0IGlzIGFsaXZlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TGF5ZXJUcmVlVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRy
ZWVWaWV3LmNwcAppbmRleCA1MzI0NmIxY2E4N2ZiM2IxZDE5OWNiY2NkYmY3MmIzM2RmNzExZWZk
Li5kZjExNTQzMTgwN2VkNzI2YTNiOWJmNjgyMzY2OGY1ZDU0MmMwYTg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcApAQCAtNTUsMjIgKzU1
LDE4IEBAIFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzOjpvcGVyYXRvciBDQ1NldHRpbmdzKCkg
Y29uc3QKIAogdm9pZCBXZWJMYXllclRyZWVWaWV3OjpyZXNldCgpCiB7Ci0gICAgbV9wcml2YXRl
LnJlc2V0KCk7CisgICAgbV9wcml2YXRlLnJlc2V0KDApOwogfQogCi12b2lkIFdlYkxheWVyVHJl
ZVZpZXc6OmFzc2lnbihjb25zdCBXZWJMYXllclRyZWVWaWV3JiBvdGhlcikKK2Jvb2wgV2ViTGF5
ZXJUcmVlVmlldzo6aXNOdWxsKCkgY29uc3QKIHsKLSAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3By
aXZhdGU7Ci19Ci0KLWJvb2wgV2ViTGF5ZXJUcmVlVmlldzo6ZXF1YWxzKGNvbnN0IFdlYkxheWVy
VHJlZVZpZXcmIG4pIGNvbnN0Ci17Ci0gICAgcmV0dXJuIChtX3ByaXZhdGUuZ2V0KCkgPT0gbi5t
X3ByaXZhdGUuZ2V0KCkpOworICAgIHJldHVybiAhbV9wcml2YXRlLmdldCgpOwogfQogCiBib29s
IFdlYkxheWVyVHJlZVZpZXc6OmluaXRpYWxpemUoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCogY2xp
ZW50LCBjb25zdCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGlu
Z3MmIHNldHRpbmdzKQogewotICAgIG1fcHJpdmF0ZSA9IFdlYkxheWVyVHJlZVZpZXdJbXBsOjpj
cmVhdGUoY2xpZW50LCByb290LCBzZXR0aW5ncyk7CisgICAgLy8gV2UgaGF2ZSB0byBsZWFrIHRo
ZSBwb2ludGVyIGhlcmUgaW50byBhIFdlYlByaXZhdGVPd25QdHIuIFdlIGZyZWUgdGhpcyBvYmpl
Y3QgaW4gcmVzZXQoKS4KKyAgICBtX3ByaXZhdGUucmVzZXQoV2ViTGF5ZXJUcmVlVmlld0ltcGw6
OmNyZWF0ZShjbGllbnQsIHJvb3QsIHNldHRpbmdzKS5sZWFrUHRyKCkpOwogICAgIHJldHVybiAh
aXNOdWxsKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxh
eWVyVHJlZVZpZXdJbXBsLmNwcAppbmRleCA2OGNmZGJlMWRkZGE4Mjk2ODJjYjUzM2M4OGM3Mjhj
NmE3MzRkNjg5Li4xNjFmOWU5MzIyZjdiMTdhZTc5MTI0MjBjNzA5NzllM2U0Y2FhNzE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwu
Y3BwCkBAIC00MSwxMyArNDEsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkxheWVyVHJlZVZpZXdJbXBsPiBXZWJMYXll
clRyZWVWaWV3SW1wbDo6Y3JlYXRlKFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCwgY29u
c3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJiBzZXR0
aW5ncykKK1Bhc3NPd25QdHI8V2ViTGF5ZXJUcmVlVmlld0ltcGw+IFdlYkxheWVyVHJlZVZpZXdJ
bXBsOjpjcmVhdGUoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCogY2xpZW50LCBjb25zdCBXZWJMYXll
ciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MmIHNldHRpbmdzKQogewot
ICAgIFJlZlB0cjxXZWJMYXllclRyZWVWaWV3SW1wbD4gaG9zdCA9IGFkb3B0UmVmKG5ldyBXZWJM
YXllclRyZWVWaWV3SW1wbChjbGllbnQsIHNldHRpbmdzKSk7CisgICAgT3duUHRyPFdlYkxheWVy
VHJlZVZpZXdJbXBsPiBob3N0ID0gYWRvcHRQdHIobmV3IFdlYkxheWVyVHJlZVZpZXdJbXBsKGNs
aWVudCwgc2V0dGluZ3MpKTsKICAgICBpZiAoIWhvc3QtPmluaXRpYWxpemUoKSkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGhvc3QtPnNldFJvb3RMYXll
cihyb290KTsKLSAgICByZXR1cm4gaG9zdDsKKyAgICByZXR1cm4gaG9zdC5yZWxlYXNlKCk7CiB9
CiAKIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRy
ZWVWaWV3Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJiBz
ZXR0aW5ncykgCkBAIC02MiwzMiArNjIsMjYgQEAgV2ViTGF5ZXJUcmVlVmlld0ltcGw6On5XZWJM
YXllclRyZWVWaWV3SW1wbCgpCiAKIHZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OndpbGxCZWdp
bkZyYW1lKCkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT53aWxsQmVn
aW5GcmFtZSgpOworICAgIG1fY2xpZW50LT53aWxsQmVnaW5GcmFtZSgpOwogfQogCiB2b2lkIFdl
YkxheWVyVHJlZVZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFt
ZUJlZ2luVGltZSkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT51cGRh
dGVBbmltYXRpb25zKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKKyAgICBtX2NsaWVudC0+dXBk
YXRlQW5pbWF0aW9ucyhtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiB9CiAKIHZvaWQgV2ViTGF5
ZXJUcmVlVmlld0ltcGw6OmxheW91dCgpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+bGF5b3V0KCk7CisgICAgbV9jbGllbnQtPmxheW91dCgpOwogfQogCiB2b2lkIFdl
YkxheWVyVHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpCiB7Ci0gICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKHNjcm9sbERl
bHRhKSwgcGFnZVNjYWxlKTsKKyAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJT
aXplKHNjcm9sbERlbHRhKSwgcGFnZVNjYWxlKTsKIH0KIAogUGFzc1JlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZUNvbnRleHQoKQogewotICAgIGlm
ICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiAwOwogICAgIE93blB0cjxXZWJHcmFwaGljc0Nv
bnRleHQzRD4gd2ViQ29udGV4dCA9IGFkb3B0UHRyKG1fY2xpZW50LT5jcmVhdGVDb250ZXh0M0Qo
KSk7CiAgICAgaWYgKCF3ZWJDb250ZXh0KQogICAgICAgICByZXR1cm4gMDsKQEAgLTk3LDMyICs5
MSwyNyBAQCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBXZWJMYXllclRyZWVWaWV3SW1w
bDo6Y3JlYXRlQ29udGV4dCgpCiAKIHZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmRpZFJlY3Jl
YXRlQ29udGV4dChib29sIHN1Y2Nlc3MpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+ZGlkUmViaW5kR3JhcGhpY3NDb250ZXh0KHN1Y2Nlc3MpOworICAgIG1fY2xpZW50
LT5kaWRSZWJpbmRHcmFwaGljc0NvbnRleHQoc3VjY2Vzcyk7CiB9CiAKIHZvaWQgV2ViTGF5ZXJU
cmVlVmlld0ltcGw6OmRpZENvbW1pdCgpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBt
X2NsaWVudC0+ZGlkQ29tbWl0KCk7CisgICAgbV9jbGllbnQtPmRpZENvbW1pdCgpOwogfQogCiB2
b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpkaWRDb21taXRBbmREcmF3RnJhbWUoKQogewotICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZENvbW1pdEFuZERyYXdGcmFtZSgp
OworICAgIG1fY2xpZW50LT5kaWRDb21taXRBbmREcmF3RnJhbWUoKTsKIH0KIAogdm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6ZGlkQ29tcGxldGVTd2FwQnVmZmVycygpCiB7Ci0gICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVTd2FwQnVmZmVycygpOworICAg
IG1fY2xpZW50LT5kaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7CiB9CiAKIHZvaWQgV2ViTGF5ZXJU
cmVlVmlld0ltcGw6OnNjaGVkdWxlQ29tcG9zaXRlKCkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0g
ICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZUNvbXBvc2l0ZSgpOworICAgIG1fY2xpZW50LT5zY2hl
ZHVsZUNvbXBvc2l0ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCmluZGV4IGFmMDRh
MzViZGMwNWVhNWVhNWZhYzAzYmIzMTZiYTI2Mjc2NDVlY2IuLmM5YjBkNzcyYTRmMDZiYmZjZWQ3
MGMzNGM0ZGU1MTQ1MGI2NTMyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAi
cGxhdGZvcm0vV2ViTGF5ZXJUcmVlVmlldy5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9z
dC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJMYXllcjsKQEAgLTM2LDExICsz
Niw5IEBAIGNsYXNzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ7CiAKIGNsYXNzIFdlYkxheWVyVHJl
ZVZpZXdJbXBsIDogcHVibGljIFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdCwgcHVibGljIFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViTGF5ZXJUcmVlVmlld0ltcGw+IGNyZWF0ZShXZWJMYXllclRyZWVWaWV3Q2xpZW50Kiwg
Y29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJik7
Ci0KLXByaXZhdGU6Ci0gICAgV2ViTGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVlVmlld0Ns
aWVudCosIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJik7CisgICAgc3RhdGljIFBh
c3NPd25QdHI8V2ViTGF5ZXJUcmVlVmlld0ltcGw+IGNyZWF0ZShXZWJMYXllclRyZWVWaWV3Q2xp
ZW50KiwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRp
bmdzJik7CiAgICAgdmlydHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKTsKKwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsQmVnaW5GcmFtZSgpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRp
b25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGxh
eW91dCgpOwpAQCAtNTQsNiArNTIsOSBAQCBwcml2YXRlOgogICAgIC8vIE9ubHkgdXNlZCBpbiB0
aGUgc2luZ2xlIHRocmVhZGVkIHBhdGguCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9z
aXRlKCk7CiAKK3ByaXZhdGU6CisgICAgV2ViTGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVl
Vmlld0NsaWVudCosIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJik7CisKICAgICBX
ZWJMYXllclRyZWVWaWV3Q2xpZW50KiBtX2NsaWVudDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IGUyMjVk
MjZkYjJiOTI5NThlZWJjZTMyZmQ5NWMxZDY1NzJkMjUzYWYuLjUxOWJjYTA3OTY2MzhlN2MzNjQy
YzJjNzU0NTFiYmRlZDVlMjI1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtMTMyLDEzICsxMzIsMTMgQEAgcHJp
dmF0ZToKIC8vIEFkYXB0cyBDQ0xheWVyVHJlZUhvc3QgZm9yIHRlc3QuIEluamVjdHMgTW9ja0xh
eWVyVHJlZUhvc3RJbXBsLgogY2xhc3MgTW9ja0xheWVyVHJlZUhvc3QgOiBwdWJsaWMgQ0NMYXll
clRyZWVIb3N0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNb2NrTGF5ZXJUcmVl
SG9zdD4gY3JlYXRlKFRlc3RIb29rcyogdGVzdEhvb2tzLCBDQ0xheWVyVHJlZUhvc3RDbGllbnQq
IGNsaWVudCwgUGFzc1JlZlB0cjxMYXllckNocm9taXVtPiByb290TGF5ZXIsIGNvbnN0IENDU2V0
dGluZ3MmIHNldHRpbmdzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPE1vY2tMYXllclRyZWVIb3N0
PiBjcmVhdGUoVGVzdEhvb2tzKiB0ZXN0SG9va3MsIENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xp
ZW50LCBQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IHJvb3RMYXllciwgY29uc3QgQ0NTZXR0aW5n
cyYgc2V0dGluZ3MpCiAgICAgewogICAgICAgICAvLyBGb3IgdGhlc2UgdGVzdHMsIHdlIHdpbGwg
ZW5hYmxlIHRocmVhZGVkIGFuaW1hdGlvbnMuCiAgICAgICAgIENDU2V0dGluZ3Mgc2V0dGluZ3ND
b3B5ID0gc2V0dGluZ3M7CiAgICAgICAgIHNldHRpbmdzQ29weS50aHJlYWRlZEFuaW1hdGlvbkVu
YWJsZWQgPSB0cnVlOwogCi0gICAgICAgIFJlZlB0cjxNb2NrTGF5ZXJUcmVlSG9zdD4gbGF5ZXJU
cmVlSG9zdCA9IGFkb3B0UmVmKG5ldyBNb2NrTGF5ZXJUcmVlSG9zdCh0ZXN0SG9va3MsIGNsaWVu
dCwgc2V0dGluZ3NDb3B5KSk7CisgICAgICAgIE93blB0cjxNb2NrTGF5ZXJUcmVlSG9zdD4gbGF5
ZXJUcmVlSG9zdCA9IGFkb3B0UHRyKG5ldyBNb2NrTGF5ZXJUcmVlSG9zdCh0ZXN0SG9va3MsIGNs
aWVudCwgc2V0dGluZ3NDb3B5KSk7CiAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGxheWVyVHJlZUhv
c3QtPmluaXRpYWxpemUoKTsKICAgICAgICAgRVhQRUNUX1RSVUUoc3VjY2Vzcyk7CiAgICAgICAg
IGxheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihyb290TGF5ZXIpOwpAQCAtNTE1LDcgKzUxNSw3
IEBAIHByb3RlY3RlZDoKIAogICAgIENDU2V0dGluZ3MgbV9zZXR0aW5nczsKICAgICBPd25QdHI8
TW9ja0xheWVyVHJlZUhvc3RDbGllbnQ+IG1fY2xpZW50OwotICAgIFJlZlB0cjxDQ0xheWVyVHJl
ZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKKyAgICBPd25QdHI8Q0NMYXllclRyZWVIb3N0PiBtX2xh
eWVyVHJlZUhvc3Q7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBtX2JlZ2lubmluZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZhczJETGF5ZXJDaHJvbWl1
bVRlc3QuY3BwCmluZGV4IDI2NDc1Y2UzNjllNWUyMzM3MjAyMTIxYzg2N2IwMmM0MmQxYjYzOTgu
LmQ2NGI5YmE1YjVjNjA5OTEyY2YzZmZjYzliMjJjYjUyYmZkZDMxYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ2FudmFzMkRMYXllckNocm9taXVtVGVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DYW52YXMyRExheWVyQ2hyb21pdW1U
ZXN0LmNwcApAQCAtNTYsOSArNTYsOSBAQCBuYW1lc3BhY2UgewogCiBjbGFzcyBGYWtlQ0NMYXll
clRyZWVIb3N0IDogcHVibGljIENDTGF5ZXJUcmVlSG9zdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUGFz
c093blB0cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgUmVm
UHRyPEZha2VDQ0xheWVyVHJlZUhvc3Q+IGhvc3QgPSBhZG9wdFJlZihuZXcgRmFrZUNDTGF5ZXJU
cmVlSG9zdCk7CisgICAgICAgIE93blB0cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBob3N0ID0gYWRv
cHRQdHIobmV3IEZha2VDQ0xheWVyVHJlZUhvc3QpOwogICAgICAgICBob3N0LT5pbml0aWFsaXpl
KCk7CiAgICAgICAgIHJldHVybiBob3N0LnJlbGVhc2UoKTsKICAgICB9CkBAIC0xMTEsNyArMTEx
LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAgICB0aHJlYWQgPSBhZG9wdFB0cih3ZWJLaXRQbGF0
Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDYW52YXMyRExheWVyQ2hyb21pdW1UZXN0Iikp
OwogICAgICAgICBXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKHRocmVhZC5nZXQoKSk7CiAKLSAg
ICAgICAgUmVmUHRyPEZha2VDQ0xheWVyVHJlZUhvc3Q+IGxheWVyVHJlZUhvc3QgPSBGYWtlQ0NM
YXllclRyZWVIb3N0OjpjcmVhdGUoKTsKKyAgICAgICAgT3duUHRyPEZha2VDQ0xheWVyVHJlZUhv
c3Q+IGxheWVyVHJlZUhvc3QgPSBGYWtlQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKTsKICAgICAg
ICAgLy8gRm9yY2UgYW4gdXBkYXRlLCBzbyB0aGF0IHdlIGdldCBhIHZhbGlkIFRleHR1cmVNYW5h
Z2VyLgogICAgICAgICBsYXllclRyZWVIb3N0LT51cGRhdGVMYXllcnMoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCBl
N2RlMzU2ZGQwZGEzOGEzMWI4OTZiMmQ3YTljNDhhOWIxYTM2YzIzLi5mNjE3ZTZhNzliZWE0ZTkz
MDM4YWQ1Yjg0MDRhZmVlMWI1OTdmZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtNzgsNyArNzgsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgewogICAgICAgICAvLyBJbml0aWFsaXplIHdpdGhvdXQgdGhyZWFkaW5nIHN1cHBv
cnQuCiAgICAgICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKLSAgICAg
ICAgbV9sYXllclRyZWVIb3N0ID0gYWRvcHRSZWYobmV3IE1vY2tDQ0xheWVyVHJlZUhvc3QpOwor
ICAgICAgICBtX2xheWVyVHJlZUhvc3QgPSBhZG9wdFB0cihuZXcgTW9ja0NDTGF5ZXJUcmVlSG9z
dCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkKQEAgLTE0Niw3ICsxNDYs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHZlcmlmeVRlc3RUcmVlSW5pdGlhbFN0YXRlKCk7CiAg
ICAgfQogCi0gICAgUmVmUHRyPE1vY2tDQ0xheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsK
KyAgICBPd25QdHI8TW9ja0NDTGF5ZXJUcmVlSG9zdD4gbV9sYXllclRyZWVIb3N0OwogICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBtX3BhcmVudCwgbV9jaGlsZDEsIG1fY2hpbGQyLCBtX2NoaWxk
MywgbV9ncmFuZENoaWxkMSwgbV9ncmFuZENoaWxkMiwgbV9ncmFuZENoaWxkMzsKIH07CiAKQEAg
LTYwMSw5ICs2MDEsOSBAQCBURVNUX0YoTGF5ZXJDaHJvbWl1bVRlc3QsIGNoZWNrQ29udGVudHNT
Y2FsZUNoYW5nZVRyaWdnZXJzTmVlZHNEaXNwbGF5KQogCiBjbGFzcyBGYWtlQ0NMYXllclRyZWVI
b3N0IDogcHVibGljIENDTGF5ZXJUcmVlSG9zdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gY3JlYXRlKCkKKyAgICBzdGF0aWMgUGFzc093blB0
cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgUmVmUHRyPEZh
a2VDQ0xheWVyVHJlZUhvc3Q+IGhvc3QgPSBhZG9wdFJlZihuZXcgRmFrZUNDTGF5ZXJUcmVlSG9z
dCk7CisgICAgICAgIE93blB0cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBob3N0ID0gYWRvcHRQdHIo
bmV3IEZha2VDQ0xheWVyVHJlZUhvc3QpOwogICAgICAgICAvLyBUaGUgaW5pdGlhbGl6ZSBjYWxs
IHdpbGwgZmFpbCwgc2luY2Ugb3VyIGNsaWVudCBkb2Vzbid0IHByb3ZpZGUgYSB2YWxpZCBHcmFw
aGljc0NvbnRleHQzRCwgYnV0IGl0IGRvZXNuJ3QgbWF0dGVyIGluIHRoZSB0ZXN0cyB0aGF0IHVz
ZSB0aGlzIGZha2Ugc28gaWdub3JlIHRoZSByZXR1cm4gdmFsdWUuCiAgICAgICAgIGhvc3QtPmlu
aXRpYWxpemUoKTsKICAgICAgICAgcmV0dXJuIGhvc3QucmVsZWFzZSgpOwpAQCAtNjUwLDcgKzY1
MCw3IEBAIFRFU1QoTGF5ZXJDaHJvbWl1bUxheWVyVHJlZUhvc3RUZXN0LCBlbnRlcmluZ1RyZWUp
CiAKICAgICBhc3NlcnRMYXllclRyZWVIb3N0TWF0Y2hlc0ZvclN1YnRyZWUocGFyZW50LmdldCgp
LCAwKTsKIAotICAgIFJlZlB0cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBsYXllclRyZWVIb3N0ID0g
RmFrZUNDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKCk7CisgICAgT3duUHRyPEZha2VDQ0xheWVyVHJl
ZUhvc3Q+IGxheWVyVHJlZUhvc3QgPSBGYWtlQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKTsKICAg
ICAvLyBTZXR0aW5nIHRoZSByb290IGxheWVyIHNob3VsZCBzZXQgdGhlIGhvc3QgcG9pbnRlciBm
b3IgYWxsIGxheWVycyBpbiB0aGUgdHJlZS4KICAgICBsYXllclRyZWVIb3N0LT5zZXRSb290TGF5
ZXIocGFyZW50LmdldCgpKTsKIApAQCAtNjY5LDcgKzY2OSw3IEBAIFRFU1QoTGF5ZXJDaHJvbWl1
bUxheWVyVHJlZUhvc3RUZXN0LCBhZGRpbmdMYXllclN1YnRyZWUpCiB7CiAgICAgV2ViS2l0OjpX
ZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBw
YXJlbnQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKLSAgICBSZWZQdHI8RmFrZUNDTGF5ZXJU
cmVlSG9zdD4gbGF5ZXJUcmVlSG9zdCA9IEZha2VDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgpOwor
ICAgIE93blB0cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBsYXllclRyZWVIb3N0ID0gRmFrZUNDTGF5
ZXJUcmVlSG9zdDo6Y3JlYXRlKCk7CiAKICAgICBsYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIo
cGFyZW50LmdldCgpKTsKIApAQCAtNzExLDE0ICs3MTEsMTQgQEAgVEVTVChMYXllckNocm9taXVt
TGF5ZXJUcmVlSG9zdFRlc3QsIGNoYW5nZUhvc3QpCiAgICAgY2hpbGQtPnNldFJlcGxpY2FMYXll
cihyZXBsaWNhLmdldCgpKTsKICAgICByZXBsaWNhLT5zZXRNYXNrTGF5ZXIobWFzay5nZXQoKSk7
CiAKLSAgICBSZWZQdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gZmlyc3RMYXllclRyZWVIb3N0ID0g
RmFrZUNDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKCk7CisgICAgT3duUHRyPEZha2VDQ0xheWVyVHJl
ZUhvc3Q+IGZpcnN0TGF5ZXJUcmVlSG9zdCA9IEZha2VDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgp
OwogICAgIGZpcnN0TGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHBhcmVudC5nZXQoKSk7CiAK
ICAgICBhc3NlcnRMYXllclRyZWVIb3N0TWF0Y2hlc0ZvclN1YnRyZWUocGFyZW50LmdldCgpLCBm
aXJzdExheWVyVHJlZUhvc3QuZ2V0KCkpOwogCiAgICAgLy8gTm93IHJlLXJvb3QgdGhlIHRyZWUg
dG8gYSBuZXcgaG9zdCAoc2ltdWxhdGluZyB3aGF0IHdlIGRvIG9uIGEgY29udGV4dCBsb3N0IGV2
ZW50KS4KICAgICAvLyBUaGlzIHNob3VsZCB1cGRhdGUgdGhlIGhvc3QgcG9pbnRlcnMgZm9yIGFs
bCBsYXllcnMgaW4gdGhlIHRyZWUuCi0gICAgUmVmUHRyPEZha2VDQ0xheWVyVHJlZUhvc3Q+IHNl
Y29uZExheWVyVHJlZUhvc3QgPSBGYWtlQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKTsKKyAgICBP
d25QdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gc2Vjb25kTGF5ZXJUcmVlSG9zdCA9IEZha2VDQ0xh
eWVyVHJlZUhvc3Q6OmNyZWF0ZSgpOwogICAgIHNlY29uZExheWVyVHJlZUhvc3QtPnNldFJvb3RM
YXllcihwYXJlbnQuZ2V0KCkpOwogCiAgICAgYXNzZXJ0TGF5ZXJUcmVlSG9zdE1hdGNoZXNGb3JT
dWJ0cmVlKHBhcmVudC5nZXQoKSwgc2Vjb25kTGF5ZXJUcmVlSG9zdC5nZXQoKSk7CkBAIC03NDMs
MTMgKzc0MywxMyBAQCBURVNUKExheWVyQ2hyb21pdW1MYXllclRyZWVIb3N0VGVzdCwgY2hhbmdl
SG9zdEluU3VidHJlZSkKICAgICBzZWNvbmRDaGlsZC0+YWRkQ2hpbGQoc2Vjb25kR3JhbmRDaGls
ZCk7CiAgICAgZmlyc3RQYXJlbnQtPmFkZENoaWxkKHNlY29uZENoaWxkKTsKIAotICAgIFJlZlB0
cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBmaXJzdExheWVyVHJlZUhvc3QgPSBGYWtlQ0NMYXllclRy
ZWVIb3N0OjpjcmVhdGUoKTsKKyAgICBPd25QdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gZmlyc3RM
YXllclRyZWVIb3N0ID0gRmFrZUNDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKCk7CiAgICAgZmlyc3RM
YXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIoZmlyc3RQYXJlbnQuZ2V0KCkpOwogCiAgICAgYXNz
ZXJ0TGF5ZXJUcmVlSG9zdE1hdGNoZXNGb3JTdWJ0cmVlKGZpcnN0UGFyZW50LmdldCgpLCBmaXJz
dExheWVyVHJlZUhvc3QuZ2V0KCkpOwogCiAgICAgLy8gTm93IHJlcGFyZW50IHRoZSBzdWJ0cmVl
IHN0YXJ0aW5nIGF0IHNlY29uZENoaWxkIHRvIGEgbGF5ZXIgaW4gYSBkaWZmZXJlbnQgdHJlZS4K
LSAgICBSZWZQdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gc2Vjb25kTGF5ZXJUcmVlSG9zdCA9IEZh
a2VDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgpOworICAgIE93blB0cjxGYWtlQ0NMYXllclRyZWVI
b3N0PiBzZWNvbmRMYXllclRyZWVIb3N0ID0gRmFrZUNDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKCk7
CiAgICAgc2Vjb25kTGF5ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKHNlY29uZFBhcmVudC5nZXQo
KSk7CiAKICAgICBzZWNvbmRQYXJlbnQtPmFkZENoaWxkKHNlY29uZENoaWxkKTsKQEAgLTc4Miw3
ICs3ODIsNyBAQCBURVNUKExheWVyQ2hyb21pdW1MYXllclRyZWVIb3N0VGVzdCwgcmVwbGFjZU1h
c2tBbmRSZXBsaWNhTGF5ZXIpCiAgICAgbWFzay0+YWRkQ2hpbGQobWFza0NoaWxkKTsKICAgICBy
ZXBsaWNhLT5hZGRDaGlsZChyZXBsaWNhQ2hpbGQpOwogCi0gICAgUmVmUHRyPEZha2VDQ0xheWVy
VHJlZUhvc3Q+IGxheWVyVHJlZUhvc3QgPSBGYWtlQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKTsK
KyAgICBPd25QdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gbGF5ZXJUcmVlSG9zdCA9IEZha2VDQ0xh
eWVyVHJlZUhvc3Q6OmNyZWF0ZSgpOwogICAgIGxheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcihw
YXJlbnQuZ2V0KCkpOwogCiAgICAgYXNzZXJ0TGF5ZXJUcmVlSG9zdE1hdGNoZXNGb3JTdWJ0cmVl
KHBhcmVudC5nZXQoKSwgbGF5ZXJUcmVlSG9zdC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCA3
NjA0YTA0NTE1NTBjYjk4Y2Q4YTU4MDlkMTlkMTQzYmE0MjJmNGQyLi41N2RjNTRmZWIyYWRlNTQ0
NDdhZWMyYzQ1ZjdiYTQ3ZWM2Mjk1NzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTgyMSw3ICs4MjEs
NyBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHNraXBzRHJhd0dldHNSZXNldCkKICAg
ICAvLyBJbml0aWFsaXplIHdpdGhvdXQgdGhyZWFkaW5nIHN1cHBvcnQuCiAgICAgV2ViS2l0OjpX
ZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwogICAgIEZha2VDQ0xheWVyVHJlZUhvc3RDbGll
bnQgZmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudDsKLSAgICBSZWZQdHI8Q0NMYXllclRyZWVIb3N0
PiBjY0xheWVyVHJlZUhvc3QgPSBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgmZmFrZUNDTGF5ZXJU
cmVlSG9zdENsaWVudCwgQ0NTZXR0aW5ncygpKTsKKyAgICBPd25QdHI8Q0NMYXllclRyZWVIb3N0
PiBjY0xheWVyVHJlZUhvc3QgPSBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgmZmFrZUNDTGF5ZXJU
cmVlSG9zdENsaWVudCwgQ0NTZXR0aW5ncygpKTsKIAogICAgIC8vIENyZWF0ZSB0d28gMzAwIHgg
MzAwIHRpbGVkIGxheWVycy4KICAgICBJbnRTaXplIGNvbnRlbnRCb3VuZHMoMzAwLCAzMDApOwpA
QCAtOTAxLDcgKzkwMSw3IEBAIFRFU1QoVGlsZWRMYXllckNocm9taXVtVGVzdCwgcGFydGlhbFVw
ZGF0ZXMpCiAgICAgLy8gSW5pdGlhbGl6ZSB3aXRob3V0IHRocmVhZGluZyBzdXBwb3J0LgogICAg
IFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKICAgICBGYWtlQ0NMYXllclRy
ZWVIb3N0Q2xpZW50IGZha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ7Ci0gICAgUmVmUHRyPENDTGF5
ZXJUcmVlSG9zdD4gY2NMYXllclRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoJmZh
a2VDQ0xheWVyVHJlZUhvc3RDbGllbnQsIHNldHRpbmdzKTsKKyAgICBPd25QdHI8Q0NMYXllclRy
ZWVIb3N0PiBjY0xheWVyVHJlZUhvc3QgPSBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgmZmFrZUND
TGF5ZXJUcmVlSG9zdENsaWVudCwgc2V0dGluZ3MpOwogCiAgICAgLy8gQ3JlYXRlIG9uZSA1MDAg
eCAzMDAgdGlsZWQgbGF5ZXIuCiAgICAgSW50U2l6ZSBjb250ZW50Qm91bmRzKDMwMCwgMjAwKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>