<?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>126482</bug_id>
          
          <creation_ts>2014-01-03 18:56:56 -0800</creation_ts>
          <short_desc>Clean up the means of committing the scrolling state tree</short_desc>
          <delta_ts>2014-01-05 09:29:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>964367</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-03 18:56:56 -0800</bug_when>
    <thetext>Clean up the means of committing the scrolling state tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964368</commentid>
    <comment_count>1</comment_count>
      <attachid>220364</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-03 19:03:28 -0800</bug_when>
    <thetext>Created attachment 220364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964369</commentid>
    <comment_count>2</comment_count>
      <attachid>220364</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-03 19:08:52 -0800</bug_when>
    <thetext>Comment on attachment 220364
Patch

Yay! Now I can stop complaining about this in reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964370</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-03 19:51:51 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/161306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964500</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-05 09:29:40 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/161306</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220364</attachid>
            <date>2014-01-03 19:03:28 -0800</date>
            <delta_ts>2014-01-03 19:08:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126482-20140103190328.patch</filename>
            <type>text/plain</type>
            <size>24784</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRiYzI0MTE4ZDVlYjk0
YTRiMTVhMWYyOWFhMzc3YTZiNzEyYjJmZi4uMDUwMzE5YmYzM2E4N2RiODRlNzZkNzEyNGE4Y2Uz
MDUwODA5MDNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcyIEBACiAyMDE0LTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIENsZWFuIHVwIHRo
ZSBtZWFucyBvZiBjb21taXR0aW5nIHRoZSBzY3JvbGxpbmcgc3RhdGUgdHJlZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NDgyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2Nyb2xsaW5nU3RhdGVOb2Rl
cyB3b3VsZCBtYW51YWxseSBjYWxsIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQ
cm9wZXJ0aWVzKCkKKyAgICAgICAgYWZ0ZXIgc2V0UHJvcGVydHlDaGFuZ2VkKCkgaW4gbG90cyBv
ZiBwbGFjZXMsIHdoaWNoIHdhcyByZXBldGl0aXZlLCBhbmQKKyAgICAgICAgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciBtYW51YWxseSBjYWxsZWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBp
biBtYW55IHBsYWNlcy4KKyAgICAgICAgCisgICAgICAgIENsZWFuIHVwIGJvdGggb2YgdGhlc2Ug
d2l0aCBhIGNsZWFyZXIgdHJpZ2dlciBmb3Igc3RhdGUgdHJlZSBjb21taXRzLgorICAgICAgICBT
Y3JvbGxpbmdTdGF0ZU5vZGVzOjpzZXRQcm9wZXJ0eUNoYW5nZWQoKSBjYWxscyBTY3JvbGxpbmdT
dGF0ZVRyZWU6OnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKCksCisgICAgICAgIHdoaWNoIHR1cm5z
IGFyb3VuZCBhbmQgdGVsbHMgdGhlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHRoYXQgdGhlIHN0YXRl
IHRyZWUgYmVjYW1lIGRpcnR5LgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXND
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZy
YW1lVmlld0xheW91dFVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbGluZ05vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlVmlld3BvcnRD
b25zdHJhaW5lZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6c2V0U2Nyb2xsTGF5ZXJGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNldENvdW50ZXJTY3JvbGxpbmdMYXllckZvck5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0SGVhZGVyTGF5ZXJG
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNl
dEZvb3RlckxheWVyRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkZvck5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0V2hlZWxFdmVudEhhbmRsZXJD
b3VudEZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2V0U2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzRm9yTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3JvbGxiYXJQYWludGVyc0Zy
b21TY3JvbGxiYXJzRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6dXBkYXRlQ29uc3RyYWludHMpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldFByb3BlcnR5Q2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldExheWVyKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRWaWV3cG9ydFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRUb3RhbENvbnRlbnRzU2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbE9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNj
cm9sbGFibGVBcmVhUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGU6OnNldEZyYW1lU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFdoZWVs
RXZlbnRIYW5kbGVyQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlOjpzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxCZWhhdmlvckZvckZp
eGVkRWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEhlYWRlckhlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEZvb3RlckhlaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldENvdW50ZXJTY3Jv
bGxpbmdMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnNldEhlYWRlckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0Rm9vdGVyTGF5ZXIpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVN0aWNreU5vZGU6OnVwZGF0ZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
U3RhdGVUcmVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVl
OjpTY3JvbGxpbmdTdGF0ZVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVU
cmVlOjpzZXRIYXNDaGFuZ2VkUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdTdGF0ZVRyZWU6OmRpZFJlbW92ZU5vZGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYmFyUGFpbnRlcnNGcm9t
U2Nyb2xsYmFycyk6CisKKzIwMTQtMDEtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CisKICAgICAgICAgU2ltcGxpZnkgU2Nyb2xsaW5nU3RhdGVOb2RlIHJlZmVyZW5j
ZXMgdG8gdmFyaW91cyBsYXllciB0eXBlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NDc3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNWY4
ODUyOTI0NWEzOWU2ZjI5NjEyNGUwMzM4Mjg1MDE5YTE3MzBkNC4uMTUwYjZkZWMzZmY0ZmJmMzBk
MTUwMzc0NDMzN2JkMDM4NjQyMjdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTQzLDcg
KzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqIHBhZ2UpCiAgICAgOiBTY3JvbGxpbmdD
b29yZGluYXRvcihwYWdlKQotICAgICwgbV9zY3JvbGxpbmdTdGF0ZVRyZWUoU2Nyb2xsaW5nU3Rh
dGVUcmVlOjpjcmVhdGUoKSkKKyAgICAsIG1fc2Nyb2xsaW5nU3RhdGVUcmVlKFNjcm9sbGluZ1N0
YXRlVHJlZTo6Y3JlYXRlKHRoaXMpKQogewogfQogCkBAIC01MSw2ICs1MSwxMSBAQCBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjp+QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcigpCiB7CiB9CiAK
K3ZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsaW5nU3RhdGVUcmVlUHJvcGVy
dGllc0NoYW5nZWQoKQoreworICAgIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCk7Cit9CisKIHZv
aWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChGcmFt
ZVZpZXcqIGZyYW1lVmlldykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtOTcs
NyArMTAyLDYgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdMYXlv
dXRVcGRhdGVkKEZyYW1lVmlldyogZnJhbWVWaWV3KQogICAgIHNjcm9sbFBhcmFtZXRlcnMudmVy
dGljYWxTY3JvbGxiYXJNb2RlID0gZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJhck1vZGUoKTsK
IAogICAgIG5vZGUtPnNldFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyhzY3JvbGxQYXJhbWV0ZXJz
KTsKLSAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwogfQogCiB2b2lkIEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShGcmFtZVZpZXcqIGZy
YW1lVmlldykKQEAgLTE0Myw3ICsxNDcsNiBAQCBib29sIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShGcmFtZVZpZXcqIGZyYW1lVmlldwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGF0ZU5vZGUtPnNldFJlcXVlc3RlZFNjcm9sbFBv
c2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xsKCkp
OwotICAgIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTIwOCw3ICsyMTEsNiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgR3JhcAogCiAgICAgbm9kZS0+
c2V0TGF5ZXIoc2Nyb2xsTGF5ZXIpOwogICAgIG5vZGUtPnNldENvdW50ZXJTY3JvbGxpbmdMYXll
cihjb3VudGVyU2Nyb2xsaW5nTGF5ZXIpOwotICAgIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCk7
CiB9CiAKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlVmlld3BvcnRDb25z
dHJhaW5lZE5vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgVmlld3BvcnRDb25zdHJh
aW50cyYgY29uc3RyYWludHMsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCkBAIC0yMzMs
NjMgKzIzNSw1MSBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVZpZXdw
b3J0Q29uc3RyYWluZWROb2RlKFNjcm9sbGluZ05vZGVJRCBubwogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgfQotICAgIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCk7CiB9CiAKIHZvaWQgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsTGF5ZXJGb3JOb2RlKEdyYXBoaWNzTGF5
ZXIqIHNjcm9sbExheWVyLCBTY3JvbGxpbmdTdGF0ZU5vZGUqIG5vZGUpCiB7CiAgICAgbm9kZS0+
c2V0TGF5ZXIoc2Nyb2xsTGF5ZXIpOwotICAgIC8vIEZJWE1FOiBvbmx5IHNjaGVkdWxlIGEgY29t
bWl0IGlmIHNvbWV0aGluZyBjaGFuZ2VkLgotICAgIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCk7
CiB9CiAKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0Q291bnRlclNjcm9sbGlu
Z0xheWVyRm9yTm9kZShHcmFwaGljc0xheWVyKiBsYXllciwgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlKiBub2RlKQogewogICAgIG5vZGUtPnNldENvdW50ZXJTY3JvbGxpbmdMYXllcihsYXll
cik7Ci0gICAgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKTsKIH0KIAogdm9pZCBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzZXRIZWFkZXJMYXllckZvck5vZGUoR3JhcGhpY3NMYXllciogaGVh
ZGVyTGF5ZXIsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSogbm9kZSkKIHsKICAgICAvLyBI
ZWFkZXJzIGFuZCBmb290ZXJzIGFyZSBvbmx5IHN1cHBvcnRlZCBvbiB0aGUgcm9vdCBub2RlLgog
ICAgIEFTU0VSVChub2RlID09IG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCkp
OwotCiAgICAgbm9kZS0+c2V0SGVhZGVyTGF5ZXIoaGVhZGVyTGF5ZXIpOwotICAgIHNjaGVkdWxl
VHJlZVN0YXRlQ29tbWl0KCk7CiB9CiAKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
c2V0Rm9vdGVyTGF5ZXJGb3JOb2RlKEdyYXBoaWNzTGF5ZXIqIGZvb3RlckxheWVyLCBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUqIG5vZGUpCiB7CiAgICAgLy8gSGVhZGVycyBhbmQgZm9vdGVy
cyBhcmUgb25seSBzdXBwb3J0ZWQgb24gdGhlIHJvb3Qgbm9kZS4KICAgICBBU1NFUlQobm9kZSA9
PSBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+cm9vdFN0YXRlTm9kZSgpKTsKLQogICAgIG5vZGUtPnNl
dEZvb3RlckxheWVyKGZvb3RlckxheWVyKTsKLSAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgp
OwogfQogCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldE5vbkZhc3RTY3JvbGxh
YmxlUmVnaW9uRm9yTm9kZShjb25zdCBSZWdpb24mIHJlZ2lvbiwgU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlKiBub2RlKQogewogICAgIG5vZGUtPnNldE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9u
KHJlZ2lvbik7Ci0gICAgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKTsKIH0KIAogdm9pZCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRXaGVlbEV2ZW50SGFuZGxlckNvdW50Rm9yTm9kZSh1
bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxlckNvdW50LCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUqIG5vZGUpCiB7CiAgICAgbm9kZS0+c2V0V2hlZWxFdmVudEhhbmRsZXJDb3VudCh3aGVlbEV2
ZW50SGFuZGxlckNvdW50KTsKLSAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwogfQogCiB2
b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNldFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRF
bGVtZW50c0Zvck5vZGUoU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzIGJlaGF2aW9yRm9y
Rml4ZWQsIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSogbm9kZSkKIHsKICAgICBub2RlLT5z
ZXRTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMoYmVoYXZpb3JGb3JGaXhlZCk7Ci0gICAg
c2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKTsKIH0KIAogLy8gRklYTUU6IG5vdCBzdXJlIGlmIHRo
aXMgYmVsb25ncyBoZXJlLgogdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRTY3Jv
bGxiYXJQYWludGVyc0Zyb21TY3JvbGxiYXJzRm9yTm9kZShTY3JvbGxiYXIqIHZlcnRpY2FsU2Ny
b2xsYmFyLCBTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxiYXIsIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZSogbm9kZSkKIHsKICAgICBub2RlLT5zZXRTY3JvbGxiYXJQYWludGVyc0Zyb21T
Y3JvbGxiYXJzKHZlcnRpY2FsU2Nyb2xsYmFyLCBob3Jpem9udGFsU2Nyb2xsYmFyKTsKLSAgICBz
Y2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwogfQogCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OnNldFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhTeW5jaHJvbm91c1Njcm9sbGlu
Z1JlYXNvbnMgcmVhc29ucykKQEAgLTMwMyw3ICsyOTMsNiBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNldFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhTeW5jaHJvbm91c1Nj
cm9sbAogICAgIGlmIChyZWFzb25zKQogICAgICAgICB1cGRhdGVNYWluRnJhbWVTY3JvbGxMYXll
clBvc2l0aW9uKCk7CiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKS0+
c2V0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKHJlYXNvbnMpOwotICAgIHNjaGVkdWxlVHJl
ZVN0YXRlQ29tbWl0KCk7CiB9CiAKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBk
YXRlTWFpbkZyYW1lU2Nyb2xsTGF5ZXJQb3NpdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXgg
MTBjMjk4MDQzMWU3MmJjOTRhMTYwNTFmZDA0ZjM0MDU2NzYxM2NhZi4uNTViNDliMTkzY2Q0NzY0
M2VhM2I3MjNiNTM4N2FhNTgzZjkwZjk1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTQsNiAr
NTQsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQpID0gMDsKIAorICAgIHZvaWQgc2Nyb2xsaW5nU3RhdGVUcmVlUHJvcGVydGllc0NoYW5n
ZWQoKTsKKwogcHJvdGVjdGVkOgogICAgIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZUZpeGVkTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZUZpeGVkTm9kZS5jcHAKaW5kZXggMGYxN2FhYTZlMjBlODk5MzllZGIwYjdkNjMyZjdi
ODQ2ZTY1OWIxNi4uOTE0OTA4OWU0NTdjODdiM2I3NzQ1YzM1NzBmMTE1YjYyZjJiMDRjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhl
ZE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlRml4ZWROb2RlLmNwcApAQCAtNjcsNyArNjcsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlRml4
ZWROb2RlOjp1cGRhdGVDb25zdHJhaW50cyhjb25zdCBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25z
dAogCiAgICAgbV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOwogICAgIHNldFByb3BlcnR5Q2hh
bmdlZChWaWV3cG9ydENvbnN0cmFpbnRzKTsKLSAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRI
YXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZUZpeGVk
Tm9kZTo6c3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYg
dmlld3BvcnRSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlTm9kZS5jcHAKaW5kZXggYzZhMzYwZGRiMDg2ODk3NDkwYjU2MjI2NDY2MjVi
ZGVjNzY4YmUzYi4uYThhYTZmMTNlM2ViZGE2Y2JlNTA1OGMwY2FlNzlmN2U5ZTdiMjAyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5v
ZGUuY3BwCkBAIC02NCw2ICs2NCwxNSBAQCBTY3JvbGxpbmdTdGF0ZU5vZGU6On5TY3JvbGxpbmdT
dGF0ZU5vZGUoKQogewogfQogCit2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6c2V0UHJvcGVydHlD
aGFuZ2VkKHVuc2lnbmVkIHByb3BlcnR5Qml0KQoreworICAgIGlmIChtX2NoYW5nZWRQcm9wZXJ0
aWVzICYgKDEgPDwgcHJvcGVydHlCaXQpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NoYW5n
ZWRQcm9wZXJ0aWVzIHw9ICgxIDw8IHByb3BlcnR5Qml0KTsKKyAgICBtX3Njcm9sbGluZ1N0YXRl
VHJlZS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcygpOworfQorCiBQYXNzT3duUHRyPFNjcm9sbGlu
Z1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0
YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQogewogICAgIE93blB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+
IGNsb25lID0gdGhpcy0+Y2xvbmUoYWRvcHRpdmVUcmVlKTsKQEAgLTEzNSw3ICsxNDQsNiBAQCB2
b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6c2V0TGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlv
biYgbGF5ZXJSZXByZXNlbnRhdGlvbgogICAgIG1fbGF5ZXIgPSBsYXllclJlcHJlc2VudGF0aW9u
OwogCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbExheWVyKTsKLSAgICBzY3JvbGxpbmdT
dGF0ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3Jv
bGxpbmdTdGF0ZU5vZGU6OmR1bXAoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5o
CmluZGV4IDMxOWQxYmNiNTY1YzU5ZjE5N2EyMzM5N2I3ZWExODg1NDY2OTcxOGEuLjY2YzRhZGYy
NWQyZjQxODgwZTcyZWYyYWYyZDE0OGIyMzhhY2EyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCkBAIC0xNjAsNyArMTYwLDcg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzQ2hhbmdlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVy
biBtX2NoYW5nZWRQcm9wZXJ0aWVzOyB9CiAgICAgYm9vbCBoYXNDaGFuZ2VkUHJvcGVydHkodW5z
aWduZWQgcHJvcGVydHlCaXQpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbmdlZFByb3BlcnRpZXMgJiAo
MSA8PCBwcm9wZXJ0eUJpdCk7IH0KICAgICB2b2lkIHJlc2V0Q2hhbmdlZFByb3BlcnRpZXMoKSB7
IG1fY2hhbmdlZFByb3BlcnRpZXMgPSAwOyB9Ci0gICAgdm9pZCBzZXRQcm9wZXJ0eUNoYW5nZWQo
dW5zaWduZWQgcHJvcGVydHlCaXQpIHsgbV9jaGFuZ2VkUHJvcGVydGllcyB8PSAoMSA8PCBwcm9w
ZXJ0eUJpdCk7IH0KKyAgICB2b2lkIHNldFByb3BlcnR5Q2hhbmdlZCh1bnNpZ25lZCBwcm9wZXJ0
eUJpdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJl
Y3QoY29uc3QgTGF5b3V0UmVjdCYgLyp2aWV3cG9ydFJlY3QqLykgeyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuY3BwCmluZGV4IDgzMDUxNzgzZjNkMTUwZDQyMzIxYzAyOTAwMTJjZGYwYTNkMDkw
MDEuLmE5NDIwMmIwZTJhNGY2OGU3N2ZiMWZlZTkxNjg4NmQyZDlhZDIwYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlLmNwcApAQCAtOTgsNyArOTgsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0Vmlld3BvcnRSZWN0KGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCkK
IAogICAgIG1fdmlld3BvcnRSZWN0ID0gdmlld3BvcnRSZWN0OwogICAgIHNldFByb3BlcnR5Q2hh
bmdlZChWaWV3cG9ydFJlY3QpOwotICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNldEhhc0NoYW5n
ZWRQcm9wZXJ0aWVzKHRydWUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0VG90YWxDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgdG90YWxDb250ZW50c1NpemUp
CkBAIC0xMDgsNyArMTA3LDYgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNl
dFRvdGFsQ29udGVudHNTaXplKGNvbnN0IEludFNpemUmIHRvdGFsQ29udGUKIAogICAgIG1fdG90
YWxDb250ZW50c1NpemUgPSB0b3RhbENvbnRlbnRzU2l6ZTsKICAgICBzZXRQcm9wZXJ0eUNoYW5n
ZWQoVG90YWxDb250ZW50c1NpemUpOwotICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNldEhhc0No
YW5nZWRQcm9wZXJ0aWVzKHRydWUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6c2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCkBAIC0x
MTgsNyArMTE2LDYgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9s
bE9yaWdpbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogCiAgICAgbV9zY3JvbGxPcmln
aW4gPSBzY3JvbGxPcmlnaW47CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbE9yaWdpbik7
Ci0gICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7
CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnMoY29uc3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpA
QCAtMTI4LDcgKzEyNSw2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRT
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMoY29uc3QgU2Nyb2xsYWJsZUFyCiAKICAgICBtX3Njcm9s
bGFibGVBcmVhUGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2Vk
KFNjcm9sbGFibGVBcmVhUGFyYW1zKTsKLSAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXND
aGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OnNldEZyYW1lU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCkBAIC0xMzksNyAr
MTM1LDYgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEZyYW1lU2NhbGVG
YWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgbV9mcmFtZVNjYWxlRmFjdG9yID0gc2NhbGVG
YWN0b3I7CiAKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoRnJhbWVTY2FsZUZhY3Rvcik7Ci0gICAg
c2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAK
IHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXROb25GYXN0U2Nyb2xsYWJsZVJl
Z2lvbihjb25zdCBSZWdpb24mIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKQpAQCAtMTQ5LDcgKzE0
NCw2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXROb25GYXN0U2Nyb2xs
YWJsZVJlZ2lvbihjb25zdCBSZWdpb24mIG5vbkZhCiAKICAgICBtX25vbkZhc3RTY3JvbGxhYmxl
UmVnaW9uID0gbm9uRmFzdFNjcm9sbGFibGVSZWdpb247CiAgICAgc2V0UHJvcGVydHlDaGFuZ2Vk
KE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKTsKLSAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRI
YXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFdoZWVsRXZlbnRIYW5kbGVyQ291bnQodW5zaWduZWQgd2hlZWxFdmVudEhh
bmRsZXJDb3VudCkKQEAgLTE1OSw3ICsxNTMsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZTo6c2V0V2hlZWxFdmVudEhhbmRsZXJDb3VudCh1bnNpZ25lZCB3aGVlbEV2ZW50SAog
CiAgICAgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50ID0gd2hlZWxFdmVudEhhbmRsZXJDb3VudDsK
ICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoV2hlZWxFdmVudEhhbmRsZXJDb3VudCk7Ci0gICAgc2Ny
b2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZv
aWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1Jl
YXNvbnMoU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHJlYXNvbnMpCkBAIC0xNjksNyArMTYy
LDYgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFN5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29ucyhTeW5jaHJvbm91c1Njcm8KIAogICAgIG1fc3luY2hyb25vdXNTY3JvbGxp
bmdSZWFzb25zID0gcmVhc29uczsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoUmVhc29uc0ZvclN5
bmNocm9ub3VzU2Nyb2xsaW5nKTsKLSAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXNDaGFu
Z2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnNldFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cyhTY3JvbGxCZWhhdmlvckZvckZp
eGVkRWxlbWVudHMgYmVoYXZpb3JGb3JGaXhlZCkKQEAgLTE3OSw3ICsxNzEsNiBAQCB2b2lkIFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1l
bnRzKFNjcm9sbEJlaGF2aQogCiAgICAgbV9iZWhhdmlvckZvckZpeGVkID0gYmVoYXZpb3JGb3JG
aXhlZDsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKTsK
LSAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsK
IH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiByZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiwgYm9vbCBy
ZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKQpAQCAtMTg3LDcgKzE3OCw2IEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbihjb25z
dCBJbnRQb2ludCYgcmVxCiAgICAgbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvbiA9IHJlcXVlc3Rl
ZFNjcm9sbFBvc2l0aW9uOwogICAgIG1fcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsID0gcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbDsKICAgICBz
ZXRQcm9wZXJ0eUNoYW5nZWQoUmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwotICAgIHNjcm9sbGlu
Z1N0YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOwogfQogCiB2b2lkIFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SGVhZGVySGVpZ2h0KGludCBoZWFkZXJIZWln
aHQpCkBAIC0xOTcsNyArMTg3LDYgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnNldEhlYWRlckhlaWdodChpbnQgaGVhZGVySGVpZ2h0KQogCiAgICAgbV9oZWFkZXJIZWlnaHQg
PSBoZWFkZXJIZWlnaHQ7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEhlYWRlckhlaWdodCk7Ci0g
ICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJIZWlnaHQoaW50
IGZvb3RlckhlaWdodCkKQEAgLTIwNyw3ICsxOTYsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZTo6c2V0Rm9vdGVySGVpZ2h0KGludCBmb290ZXJIZWlnaHQpCiAKICAgICBtX2Zv
b3RlckhlaWdodCA9IGZvb3RlckhlaWdodDsKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoRm9vdGVy
SGVpZ2h0KTsKLSAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGll
cyh0cnVlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldENvdW50
ZXJTY3JvbGxpbmdMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBsYXllclJlcHJlc2Vu
dGF0aW9uKQpAQCAtMjE4LDcgKzIwNiw2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpzZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhCiAgICAg
bV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIgPSBsYXllclJlcHJlc2VudGF0aW9uOwogCiAgICAgc2V0
UHJvcGVydHlDaGFuZ2VkKENvdW50ZXJTY3JvbGxpbmdMYXllcik7Ci0gICAgc2Nyb2xsaW5nU3Rh
dGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7CiB9CiAKIHZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRIZWFkZXJMYXllcihjb25zdCBMYXllclJlcHJlc2Vu
dGF0aW9uJiBsYXllclJlcHJlc2VudGF0aW9uKQpAQCAtMjI5LDcgKzIxNiw2IEBAIHZvaWQgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRIZWFkZXJMYXllcihjb25zdCBMYXllclJlcHJl
c2VudGF0aW9uJiBsYXllCiAgICAgbV9oZWFkZXJMYXllciA9IGxheWVyUmVwcmVzZW50YXRpb247
CiAKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoSGVhZGVyTGF5ZXIpOwotICAgIHNjcm9sbGluZ1N0
YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOwogfQogCiAKQEAgLTI0MSw3
ICsyMjcsNiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0Rm9vdGVyTGF5
ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZQogICAgIG1fZm9vdGVyTGF5ZXIgPSBs
YXllclJlcHJlc2VudGF0aW9uOwogCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEZvb3RlckxheWVy
KTsKLSAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVl
KTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKaW5k
ZXggMTJlNzhlZjFjNDZkNTMzNzk2NGZhYzBjOTRhNGI0NDA4NDAyODZkZC4uYjU4Zjc3NTQ0NmYy
NDhiZTVmNTk3NTUzZjRmZWVjYjEzYThlYTI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCkBAIC02
Nyw3ICs2Nyw2IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjp1cGRhdGVDb25zdHJh
aW50cyhjb25zdCBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uCiAKICAgICBtX2NvbnN0cmFpbnRz
ID0gY29uc3RyYWludHM7CiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZpZXdwb3J0Q29uc3RyYWlu
dHMpOwotICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRy
dWUpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZTo6c3luY0xheWVyUG9zaXRp
b25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAK
aW5kZXggNzUwZTJiOTY5OTNjNDBjYmZmZGY1YmJjZGJjZjhmZThiMDIyOTgzMi4uZjBmNGNkZmYz
YTA0MmNiYzUxODY3ZWY3OTNmN2RiZjI3YTY1MTNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCkBAIC0yOCwxOSArMjgs
MjEgQEAKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpIHx8IFVTRShDT09SRElOQVRFRF9H
UkFQSElDUykKIAorI2luY2x1ZGUgIkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNs
dWRlICJTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPiBT
Y3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZSgpCitQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJl
ZT4gU2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciog
c2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTY3JvbGxp
bmdTdGF0ZVRyZWUpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgU2Nyb2xsaW5nU3RhdGVUcmVl
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1N0YXRlVHJlZTo6U2Nyb2xs
aW5nU3RhdGVUcmVlKCkKLSAgICA6IG1faGFzQ2hhbmdlZFByb3BlcnRpZXMoZmFsc2UpCitTY3Jv
bGxpbmdTdGF0ZVRyZWU6OlNjcm9sbGluZ1N0YXRlVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKKyAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Io
c2Nyb2xsaW5nQ29vcmRpbmF0b3IpCisgICAgLCBtX2hhc0NoYW5nZWRQcm9wZXJ0aWVzKGZhbHNl
KQogICAgICwgbV9oYXNOZXdSb290U3RhdGVOb2RlKGZhbHNlKQogewogfQpAQCAtNDksNiArNTEs
MTYgQEAgU2Nyb2xsaW5nU3RhdGVUcmVlOjp+U2Nyb2xsaW5nU3RhdGVUcmVlKCkKIHsKIH0KIAor
dm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKGJvb2wgY2hh
bmdlZFByb3BlcnRpZXMpCit7CisgICAgYm9vbCBnYWluZWRDaGFuZ2VkUHJvcGVydGllcyA9ICFt
X2hhc0NoYW5nZWRQcm9wZXJ0aWVzICYmIGNoYW5nZWRQcm9wZXJ0aWVzOworCisgICAgbV9oYXND
aGFuZ2VkUHJvcGVydGllcyA9IGNoYW5nZWRQcm9wZXJ0aWVzOworCisgICAgaWYgKGdhaW5lZENo
YW5nZWRQcm9wZXJ0aWVzICYmIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCisgICAgICAgIG1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPnNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFuZ2VkKCk7
Cit9CisKIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdTdGF0ZVRyZWU6OmF0dGFjaE5vZGUoU2Ny
b2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBuZXdOb2RlSUQsIFNjcm9s
bGluZ05vZGVJRCBwYXJlbnRJRCkKIHsKICAgICBBU1NFUlQobmV3Tm9kZUlEKTsKQEAgLTE3Myw3
ICsxODUsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6cmVtb3ZlTm9kZShTY3JvbGxpbmdT
dGF0ZU5vZGUqIG5vZGUpCiB2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6ZGlkUmVtb3ZlTm9kZShT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29t
bWl0LmFwcGVuZChub2RlSUQpOwotICAgIG1faGFzQ2hhbmdlZFByb3BlcnRpZXMgPSB0cnVlOwor
ICAgIHNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKCk7CiB9CiAKIFNjcm9sbGluZ1N0YXRlTm9kZSog
U2Nyb2xsaW5nU3RhdGVUcmVlOjpzdGF0ZU5vZGVGb3JJRChTY3JvbGxpbmdOb2RlSUQgc2Nyb2xs
TGF5ZXJJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVUcmVlLmgKaW5kZXggMjVmOGI5NjQ2NDM1ZjZlNzZiZThjMmQ1MWJlMWY3OWJiZjMzNmVi
MC4uZTA1NGYzODJkNmYyODczNzUzN2M3N2E4ZTY5MzEwYWFlMDg3ZjcyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKQEAgLTM0
LDcgKzM0LDkgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAgCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0gCisKK2NsYXNzIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CisKIC8vIFRoZSBTY3Jv
bGxpbmdTdGF0ZVRyZWUgaXMgYSB0cmVlIHRoYXQgbWFuYWdlZCBTY3JvbGxpbmdTdGF0ZU5vZGVz
LiBUaGUgbm9kZXMga2VlcCB0cmFjayBvZiB0aGUgY3VycmVudAogLy8gc3RhdGUgb2Ygc2Nyb2xs
aW5nIHJlbGF0ZWQgcHJvcGVydGllcy4gV2hlbmV2ZXIgYW55IHByb3BlcnRpZXMgY2hhbmdlLCB0
aGUgc2Nyb2xsaW5nIGNvb3JkaW5hdG9yCiAvLyB3aWxsIGJlIGluZm9ybWVkIGFuZCB3aWxsIHNj
aGVkdWxlIGEgdGltZXIgdGhhdCB3aWxsIGNsb25lIHRoZSBuZXcgc3RhdGUgdHJlZSBhbmQgc2Vu
ZCBpdCBvdmVyIHRvCkBAIC00NCw3ICs0Niw3IEBAIGNsYXNzIFNjcm9sbGluZ1N0YXRlVHJlZSB7
CiAgICAgZnJpZW5kIGNsYXNzIFNjcm9sbGluZ1N0YXRlTm9kZTsKIHB1YmxpYzoKICAgICAKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IGNyZWF0ZSgpOworICAgIHN0
YXRpYyBQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqID0gMCk7CiAgICAgflNjcm9sbGluZ1N0YXRlVHJlZSgpOwogCiAgICAgU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKiByb290U3RhdGVOb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9yb290U3RhdGVOb2RlLmdldCgpOyB9CkBAIC01OSwxOSArNjEsMjAgQEAgcHVibGljOgogICAg
IC8vIENvcGllcyB0aGUgY3VycmVudCB0cmVlIHN0YXRlIGFuZCBjbGVhcnMgdGhlIGNoYW5nZWQg
cHJvcGVydGllcyBtYXNrIGluIHRoZSBvcmlnaW5hbC4KICAgICBQYXNzT3duUHRyPFNjcm9sbGlu
Z1N0YXRlVHJlZT4gY29tbWl0KCk7CiAKLSAgICB2b2lkIHNldEhhc0NoYW5nZWRQcm9wZXJ0aWVz
KGJvb2wgY2hhbmdlZFByb3BlcnRpZXMpIHsgbV9oYXNDaGFuZ2VkUHJvcGVydGllcyA9IGNoYW5n
ZWRQcm9wZXJ0aWVzOyB9CisgICAgdm9pZCBzZXRIYXNDaGFuZ2VkUHJvcGVydGllcyhib29sID0g
dHJ1ZSk7CiAgICAgYm9vbCBoYXNDaGFuZ2VkUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzQ2hhbmdlZFByb3BlcnRpZXM7IH0KIAogICAgIGJvb2wgaGFzTmV3Um9vdFN0YXRlTm9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1faGFzTmV3Um9vdFN0YXRlTm9kZTsgfQogCiBwcml2YXRlOgotICAg
IFNjcm9sbGluZ1N0YXRlVHJlZSgpOworICAgIFNjcm9sbGluZ1N0YXRlVHJlZShBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yKik7CiAKICAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFzc093blB0
cjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+IHJvb3RTdGF0ZU5vZGUpIHsgbV9yb290U3Rh
dGVOb2RlID0gcm9vdFN0YXRlTm9kZTsgfQogICAgIHZvaWQgYWRkTm9kZShTY3JvbGxpbmdTdGF0
ZU5vZGUqKTsKICAgICB2b2lkIHJlbW92ZU5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKik7CiAgICAg
dm9pZCBkaWRSZW1vdmVOb2RlKFNjcm9sbGluZ05vZGVJRCk7CiAKKyAgICBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwogICAgIEhhc2hNYXA8U2Nyb2xs
aW5nTm9kZUlELCBTY3JvbGxpbmdTdGF0ZU5vZGUqPiBtX3N0YXRlTm9kZU1hcDsKICAgICBPd25Q
dHI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPiBtX3Jvb3RTdGF0ZU5vZGU7CiAgICAgVmVj
dG9yPFNjcm9sbGluZ05vZGVJRD4gbV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMubW0KaW5kZXggNzE3OWU1MTdhOWJjNmJhYTc0OTYzNWYyMmZmNTMzODUx
NWE4NGRhOC4uOGY5NzRhMjNiZTg2MzZlN2I0ZDE0NzYyZTRmNTgyOTZhNDg3ZjIxOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbQpAQCAtOTMsMTAgKzkzLDkgQEAgYm9vbCBTY3JvbGxpbmdDb29y
ZGluYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcqLCBjb25zdCBQbGF0Zm9ybVdo
ZWVsRXYKIAogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2NoZWR1bGVUcmVlU3RhdGVD
b21taXQoKQogewotICAgIGlmIChtX3Njcm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyLmlz
QWN0aXZlKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoc2Nyb2xsaW5nU3RhdGVUcmVl
KCktPmhhc0NoYW5nZWRQcm9wZXJ0aWVzKCkpOwogCi0gICAgaWYgKCFzY3JvbGxpbmdTdGF0ZVRy
ZWUoKS0+aGFzQ2hhbmdlZFByb3BlcnRpZXMoKSkKKyAgICBpZiAobV9zY3JvbGxpbmdTdGF0ZVRy
ZWVDb21taXR0ZXJUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Nj
cm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IGY3YjVjMzBkZGQwYWRlNWY5ODdhYjFi
NGMzNmM4YzU1YWZlMzkzOGQuLjdiNWRiNjNjMjI0N2E4ZDRjMDI5YzAxMjg2NmQ5ZTRmMzVjNDY0
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtNTMsNyArNTMs
NiBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsYmFyUGFpbnRl
cnNGcm9tU2Nyb2xsYmFycyhTY3JvbGxiYXIqCiAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFp
bnRlciA9IGhvcml6b250YWxQYWludGVyOwogCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFBhaW50
ZXJGb3JTY3JvbGxiYXIpOwotICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQ
cm9wZXJ0aWVzKHRydWUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="244064"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>