<?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>126477</bug_id>
          
          <creation_ts>2014-01-03 17:25:02 -0800</creation_ts>
          <short_desc>Simplify ScrollingStateNode references to various layer types</short_desc>
          <delta_ts>2014-01-03 18:01:08 -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>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</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>964344</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-03 17:25:02 -0800</bug_when>
    <thetext>Simplify ScrollingStateNode references to various layer types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964346</commentid>
    <comment_count>1</comment_count>
      <attachid>220359</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-03 17:30:14 -0800</bug_when>
    <thetext>Created attachment 220359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964348</commentid>
    <comment_count>2</comment_count>
      <attachid>220359</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-03 17:35:05 -0800</bug_when>
    <thetext>Comment on attachment 220359
Patch

Attachment 220359 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/5001153871872000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964349</commentid>
    <comment_count>3</comment_count>
      <attachid>220359</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-03 17:35:59 -0800</bug_when>
    <thetext>Comment on attachment 220359
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=220359&amp;action=review

&gt; Source/WebCore/page/scrolling/ScrollingStateNode.h:119
&gt; +        return true;

assert_not_reached?

&gt; Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp:244
&gt; +    scrollingStateTree().setHasChangedProperties(true);

I think I&apos;ve asked this before; why doesn&apos;t setPropertyChanged do this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964359</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-03 18:01:08 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/161303</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220359</attachid>
            <date>2014-01-03 17:30:14 -0800</date>
            <delta_ts>2014-01-03 17:35:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126477-20140103173014.patch</filename>
            <type>text/plain</type>
            <size>26356</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA3ZDBhOTRlZjk2NTc5
OGUxNjg5NDZhMjFiMTQwYzQxZDJiZGQ1MC4uN2QyMTFhMDM5MDFmMTMyYWYxNWFmN2U2NzQ4OWE0
OGI3YzIzZDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYyIEBACiAyMDE0LTAxLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFNpbXBsaWZ5IFNj
cm9sbGluZ1N0YXRlTm9kZSByZWZlcmVuY2VzIHRvIHZhcmlvdXMgbGF5ZXIgdHlwZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjQ3NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgU2Nyb2xs
aW5nU3RhdGVOb2RlcyByZWZlcmVuY2VkIGJvdGggR3JhcGhpY3NMYXllciBhbmQgUGxhdGZvcm1M
YXllcnMsIGluCisgICAgICAgIGNvbmZ1c2luZyB3YXlzLiBJbiB0aGUgbWFpbiB0aHJlYWQgdGhl
eSBoYXZlIGEgR3JhcGhpY3NMYXllciosIGJ1dCBuZWVkCisgICAgICAgIHRvIGNoZWNrIHRvIHNl
ZSBpZiB0aGUgdW5kZXJseWluZyBQbGF0Zm9ybUxheWVyIGNoYW5nZWQuIFRoZW4sIHdoZW4KKyAg
ICAgICAgY2xvbmVkIHRvIGNvbW1pdCB0byB0aGUgc2Nyb2xsaW5nIHRocmVhZCwgdGhleSBkcm9w
IHRoZSBHcmFwaGljc0xheWVyCisgICAgICAgIGFuZCBzdG9yZSBhIFBsYXRmb3JtTGF5ZXIuCisg
ICAgICAgIAorICAgICAgICBIaWRlIHRoZSBjb21wbGV4aXR5IChhbmQgcHJlcGFyZSBmb3IgdGhl
IGZ1dHVyZSkgYnkgYWRkaW5nIExheWVyUmVwcmVzZW50YXRpb24sCisgICAgICAgIHdoaWNoIHdy
YXBzIHZhcmlvdXMgZGlmZmVyZW50IGZsYXZvcnMgb2YgbGF5ZXJzLCBhbmQga25vd3MgaG93IHRv
IGNoZWNrIHdoZXRoZXIKKyAgICAgICAgdGhlIFBsYXRmb3JtTGF5ZXIgdW5kZXJseWluZyBhIEdy
YXBoaWNzTGF5ZXIgY2hhbmdlZC4KKyAgICAgICAgCisgICAgICAgIFNjcm9sbGluZ1N0YXRlTm9k
ZSBsYXllciBzZXR0ZXJzIHRoZW4ganVzdCB0YWtlIGFuZCBjb21wYXJlIExheWVyUmVwcmVzZW50
YXRpb25zLgorICAgICAgICBDb3B5IGNvbnN0cnVjdG9ycyBjb252ZXJ0IHRvIGEgUGxhdGZvcm1M
YXllciByZXByZXNlbnRhdGlvbiAodGhvdWdoIG5vdCByZWFsbHkKKyAgICAgICAgaW4gdGhlIHJp
Z2h0IHBsYWNlIGN1cnJlbnRseSksIGFuZCBTY3JvbGxpbmdUcmVlTm9kZXMgZ2V0IFBsYXRmb3Jt
TGF5ZXJzLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1
cGRhdGVTY3JvbGxpbmdOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OnNldFNjcm9sbExheWVyRm9yTm9kZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGU6OnN5bmNMYXllclBvc2l0aW9uRm9yVmlld3BvcnRSZWN0KToKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxpbmdTdGF0ZU5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRMYXllcik6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXll
clJlcHJlc2VudGF0aW9uOjpMYXllclJlcHJlc2VudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheWVyUmVwcmVzZW50YXRpb246Om9wZXJhdG9yIEdyYXBoaWNzTGF5ZXIqKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheWVyUmVwcmVzZW50YXRpb246Om9wZXJhdG9yIFBsYXRmb3JtTGF5ZXIqKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVwcmVzZW50YXRpb246Om9wZXJhdG9yIEdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlcHJlc2Vu
dGF0aW9uOjpvcGVyYXRvciA9PSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlcHJlc2VudGF0
aW9uOjp0b1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZXByZXNlbnRh
dGlvbjo6cmVwcmVzZW50c0dyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJS
ZXByZXNlbnRhdGlvbjo6cmVwcmVzZW50c1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJSZXByZXNlbnRhdGlvbjo6cmVwcmVzZW50c1BsYXRmb3JtTGF5ZXJJRCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmxheWVyKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpz
ZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpzZXRIZWFkZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEZvb3RlckxheWVyKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpzeW5jTGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0
UmVjdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlTm9kZU1h
Yy5tbToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlTWFjLm1tOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
Rml4ZWROb2RlLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6
dXBkYXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OnVwZGF0ZUJlZm9yZUNoaWxkcmVuKToK
KworMjAxNC0wMS0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwog
ICAgICAgICBHaXZlIGFsbCBQbGF0Zm9ybUNBTGF5ZXJzIGEgUGxhdGZvcm1MYXllcklELCBub3Qg
anVzdCByZW1vdGUgb25lcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI2NDY2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNzAwZDUxMDkxZmI1
NjUyODA4ODMxOWQyNmVmMTZmMTdjMGM2ZDQzMS4uNWY4ODUyOTI0NWEzOWU2ZjI5NjEyNGUwMzM4
Mjg1MDE5YTE3MzBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTIwNiw3ICsyMDYsNyBA
QCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbGluZ05vZGUoU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCwgR3JhcAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbm9kZS0+c2V0U2Nyb2xsTGF5ZXIoc2Nyb2xsTGF5ZXIpOworICAgIG5vZGUtPnNl
dExheWVyKHNjcm9sbExheWVyKTsKICAgICBub2RlLT5zZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIo
Y291bnRlclNjcm9sbGluZ0xheWVyKTsKICAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwog
fQpAQCAtMjM4LDcgKzIzOCw4IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBk
YXRlVmlld3BvcnRDb25zdHJhaW5lZE5vZGUoU2Nyb2xsaW5nTm9kZUlEIG5vCiAKIHZvaWQgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0U2Nyb2xsTGF5ZXJGb3JOb2RlKEdyYXBoaWNzTGF5
ZXIqIHNjcm9sbExheWVyLCBTY3JvbGxpbmdTdGF0ZU5vZGUqIG5vZGUpCiB7Ci0gICAgbm9kZS0+
c2V0U2Nyb2xsTGF5ZXIoc2Nyb2xsTGF5ZXIpOworICAgIG5vZGUtPnNldExheWVyKHNjcm9sbExh
eWVyKTsKKyAgICAvLyBGSVhNRTogb25seSBzY2hlZHVsZSBhIGNvbW1pdCBpZiBzb21ldGhpbmcg
Y2hhbmdlZC4KICAgICBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9k
ZS5jcHAKaW5kZXggOGZkODc3YjRiYjAyZTNhNWUwOTM0ZTRjM2Q1NTAyMWFmMjY3YTM1Ni4uMGYx
N2FhYTZlMjBlODk5MzllZGIwYjdkNjMyZjdiODQ2ZTY1OWIxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlLmNw
cApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjp1cGRhdGVD
b25zdHJhaW50cyhjb25zdCBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdAogdm9pZCBTY3JvbGxp
bmdTdGF0ZUZpeGVkTm9kZTo6c3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3QoY29uc3Qg
TGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KQogewogICAgIEZsb2F0UG9pbnQgcG9zaXRpb24gPSBt
X2NvbnN0cmFpbnRzLmxheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3Qodmlld3BvcnRSZWN0KTsK
LSAgICBncmFwaGljc0xheWVyKCktPnN5bmNQb3NpdGlvbihwb3NpdGlvbik7CisgICAgc3RhdGlj
X2Nhc3Q8R3JhcGhpY3NMYXllcio+KGxheWVyKCkpLT5zeW5jUG9zaXRpb24ocG9zaXRpb24pOwog
fQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3Ry
ZWFtJiB0cywgaW50IGluZGVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCmluZGV4IDU2MjE4ZjliNjcwZjIwM2Y4
Yjg5NDI0ZDk1NjRmMWVlYzg4MDAzYzkuLmM2YTM2MGRkYjA4Njg5NzQ5MGI1NjIyNjQ2NjI1YmRl
Yzc2OGJlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVOb2RlLmNwcApAQCAtNDYsOCArNDYsNyBAQCBTY3JvbGxpbmdTdGF0ZU5vZGU6
OlNjcm9sbGluZ1N0YXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5n
U3RhdAogfQogCiAvLyBUaGlzIGNvcHkgY29uc3RydWN0b3IgaXMgdXNlZCBmb3IgY2xvbmluZyBu
b2RlcyBpbiB0aGUgdHJlZSwgYW5kIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZQotLy8gdG8gY2xvbmUg
dGhlIHJlbGF0aW9uc2hpcCBwb2ludGVycywgc28gZG9uJ3QgY29weSB0aGF0IGluZm9ybWF0aW9u
IGZyb20gdGhlIG9yaWdpbmFsCi0vLyBub2RlLgorLy8gdG8gY2xvbmUgdGhlIHJlbGF0aW9uc2hp
cCBwb2ludGVycywgc28gZG9uJ3QgY29weSB0aGF0IGluZm9ybWF0aW9uIGZyb20gdGhlIG9yaWdp
bmFsIG5vZGUuCiBTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbGluZ1N0YXRlTm9kZShjb25zdCBT
Y3JvbGxpbmdTdGF0ZU5vZGUmIHN0YXRlTm9kZSwgU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2
ZVRyZWUpCiAgICAgOiBtX25vZGVUeXBlKHN0YXRlTm9kZS5ub2RlVHlwZSgpKQogICAgICwgbV9u
b2RlSUQoc3RhdGVOb2RlLnNjcm9sbGluZ05vZGVJRCgpKQpAQCAtNTUsOCArNTQsOSBAQCBTY3Jv
bGxpbmdTdGF0ZU5vZGU6OlNjcm9sbGluZ1N0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5v
ZGUmIHN0YXRlTm9kZSwgU2NybwogICAgICwgbV9zY3JvbGxpbmdTdGF0ZVRyZWUoYWRvcHRpdmVU
cmVlKQogICAgICwgbV9wYXJlbnQoMCkKIHsKLSAgICAvLyBGSVhNRTogd2h5IGRvZXNuJ3QgdGhp
cyBzZXQgdGhlIEdyYXBoaWNzTGF5ZXI/Ci0gICAgc2V0U2Nyb2xsUGxhdGZvcm1MYXllcihzdGF0
ZU5vZGUucGxhdGZvcm1TY3JvbGxMYXllcigpKTsKKyAgICAvLyBUaGUgY2xvbmVkIHRyZWUgcmVm
ZXJlbmNlcyBQbGF0Zm9ybUxheWVycywgd2hpY2ggYXJlIHNhZmUgdG8gc2VuZCB0byB0aGUgc2Ny
b2xsaW5nIHRocmVhZC4KKyAgICAvLyBGSVhNRTogdGhpcyBNYWMgdGhyZWFkZWQtc2Nyb2xsaW5n
IGFzc3VtcHRpb24gZG9lc24ndCBiZWxvbmcgaGVyZS4KKyAgICBzZXRMYXllcihzdGF0ZU5vZGUu
bGF5ZXIoKS50b1BsYXRmb3JtTGF5ZXIoKSk7CiAgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuYWRk
Tm9kZSh0aGlzKTsKIH0KIApAQCAtMTI3LDYgKzEyNywxNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRl
Tm9kZTo6d2lsbEJlUmVtb3ZlZEZyb21TdGF0ZVRyZWUoKQogICAgICAgICBtX2NoaWxkcmVuLT5h
dChpKS0+d2lsbEJlUmVtb3ZlZEZyb21TdGF0ZVRyZWUoKTsKIH0KIAordm9pZCBTY3JvbGxpbmdT
dGF0ZU5vZGU6OnNldExheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyUmVwcmVz
ZW50YXRpb24pCit7CisgICAgaWYgKGxheWVyUmVwcmVzZW50YXRpb24gPT0gbV9sYXllcikKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIG1fbGF5ZXIgPSBsYXllclJlcHJlc2VudGF0aW9uOwor
CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFNjcm9sbExheWVyKTsKKyAgICBzY3JvbGxpbmdTdGF0
ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKK30KKwogdm9pZCBTY3JvbGxp
bmdTdGF0ZU5vZGU6OmR1bXAoVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbnN0CiB7CiAg
ICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCmluZGV4IDVkMmFmMjk1NzM3OGExMzc3ZTRl
OTQ1Y2ZlMTkwZDI5YzFlNDA1ZjEuLjI4MjRkMWQ0NGMxYmNhZjA4YzdkNjBlZWUyNDExYjk4MDE5
ZWUzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlTm9kZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKSB8fCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAKLSNpbmNsdWRlICJQbGF0Zm9ybUxh
eWVyLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nv
b3JkaW5hdG9yLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CkBAIC00NCw2ICs0NCwxMDEgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNz
IFNjcm9sbGluZ1N0YXRlVHJlZTsKIGNsYXNzIFRleHRTdHJlYW07CiAKKy8vIFVzZWQgdG8gYWxs
b3cgU2Nyb2xsaW5nU3RhdGVOb2RlcyB0byByZWZlciB0byBsYXllcnMgaW4gdmFyaW91cyBjb250
ZXh0czoKKy8vIGEpIEFzeW5jIHNjcm9sbGluZywgbWFpbiB0aHJlYWQ6IFNjcm9sbGluZ1N0YXRl
Tm9kZSBob2xkcyBvbnRvIGEgR3JhcGhpY3NMYXllciwgYW5kIHVzZXMgbV9sYXllcklECisvLyAg
ICB0byBkZXRlY3Qgd2hldGhlciB0aGF0IEdyYXBoaWNzTGF5ZXIncyB1bmRlcmx5aW5nIFBsYXRm
b3JtTGF5ZXIgY2hhbmdlZC4KKy8vIGIpIFRocmVhZGVkIHNjcm9sbGluZywgY29tbWl0IHRvIHNj
cm9sbGluZyB0aHJlYWQ6IFNjcm9sbGluZ1N0YXRlTm9kZSB3cmFwcyBhIFBsYXRmb3JtTGF5ZXIs
IHdoaWNoCisvLyAgICBjYW4gYmUgcGFzc2VkIHRvIHRoZSBTY3JvbGxpbmcgVGhyZWFkCisvLyBj
KSBSZW1vdGUgc2Nyb2xsaW5nIFVJIHByb2Nlc3MsIHdoZXJlIExheWVyUmVwcmVzZW50YXRpb24g
d3JhcHMganVzdCBhIFBsYXRmb3JtTGF5ZXJJRC4KK2NsYXNzIExheWVyUmVwcmVzZW50YXRpb24g
eworcHVibGljOgorICAgIGVudW0gTGF5ZXJSZXByZXNlbnRhdGlvblR5cGUgeworICAgICAgICBF
bXB0eVJlcHJlc2VudGF0aW9uLAorICAgICAgICBHcmFwaGljc0xheWVyUmVwcmVzZW50YXRpb24s
CisgICAgICAgIFBsYXRmb3JtTGF5ZXJSZXByZXNlbnRhdGlvbiwKKyAgICAgICAgUGxhdGZvcm1M
YXllcklEUmVwcmVzZW50YXRpb24KKyAgICB9OworCisgICAgTGF5ZXJSZXByZXNlbnRhdGlvbigp
CisgICAgICAgIDogbV9ncmFwaGljc0xheWVyKG51bGxwdHIpCisgICAgICAgICwgbV9sYXllcklE
KDApCisgICAgICAgICwgbV9yZXByZXNlbnRhdGlvbihFbXB0eVJlcHJlc2VudGF0aW9uKQorICAg
IHsgfQorCisgICAgTGF5ZXJSZXByZXNlbnRhdGlvbihHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyKQorICAgICAgICA6IG1fZ3JhcGhpY3NMYXllcihncmFwaGljc0xheWVyKQorICAgICAgICAs
IG1fbGF5ZXJJRChncmFwaGljc0xheWVyID8gZ3JhcGhpY3NMYXllci0+cHJpbWFyeUxheWVySUQo
KSA6IDApCisgICAgICAgICwgbV9yZXByZXNlbnRhdGlvbihHcmFwaGljc0xheWVyUmVwcmVzZW50
YXRpb24pCisgICAgeyB9CisKKyAgICBMYXllclJlcHJlc2VudGF0aW9uKFBsYXRmb3JtTGF5ZXIq
IHBsYXRmb3JtTGF5ZXIpCisgICAgICAgIDogbV9wbGF0Zm9ybUxheWVyKHBsYXRmb3JtTGF5ZXIp
CisgICAgICAgICwgbV9sYXllcklEKDApCisgICAgICAgICwgbV9yZXByZXNlbnRhdGlvbihQbGF0
Zm9ybUxheWVyUmVwcmVzZW50YXRpb24pCisgICAgeyB9CisKKyAgICBMYXllclJlcHJlc2VudGF0
aW9uKEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEKQorICAgICAgICA6IG1f
Z3JhcGhpY3NMYXllcihudWxscHRyKQorICAgICAgICAsIG1fbGF5ZXJJRChsYXllcklEKQorICAg
ICAgICAsIG1fcmVwcmVzZW50YXRpb24oUGxhdGZvcm1MYXllcklEUmVwcmVzZW50YXRpb24pCisg
ICAgeyB9CisgICAgCisgICAgb3BlcmF0b3IgR3JhcGhpY3NMYXllciooKSBjb25zdAorICAgIHsK
KyAgICAgICAgQVNTRVJUKG1fcmVwcmVzZW50YXRpb24gPT0gR3JhcGhpY3NMYXllclJlcHJlc2Vu
dGF0aW9uKTsKKyAgICAgICAgcmV0dXJuIG1fZ3JhcGhpY3NMYXllcjsKKyAgICB9CisKKyAgICBv
cGVyYXRvciBQbGF0Zm9ybUxheWVyKigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9y
ZXByZXNlbnRhdGlvbiA9PSBQbGF0Zm9ybUxheWVyUmVwcmVzZW50YXRpb24pOworICAgICAgICBy
ZXR1cm4gbV9wbGF0Zm9ybUxheWVyOworICAgIH0KKworICAgIG9wZXJhdG9yIEdyYXBoaWNzTGF5
ZXI6OlBsYXRmb3JtTGF5ZXJJRCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9yZXBy
ZXNlbnRhdGlvbiA9PSBQbGF0Zm9ybUxheWVySURSZXByZXNlbnRhdGlvbiB8fCBtX3JlcHJlc2Vu
dGF0aW9uID09IEdyYXBoaWNzTGF5ZXJSZXByZXNlbnRhdGlvbik7CisgICAgICAgIHJldHVybiBt
X2xheWVySUQ7CisgICAgfQorICAgIAorICAgIGJvb2wgb3BlcmF0b3IgPT0oY29uc3QgTGF5ZXJS
ZXByZXNlbnRhdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9yZXByZXNl
bnRhdGlvbiAhPSBvdGhlci5tX3JlcHJlc2VudGF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBzd2l0Y2ggKG1fcmVwcmVzZW50YXRpb24pIHsKKyAgICAgICAgY2FzZSBF
bXB0eVJlcHJlc2VudGF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNh
c2UgR3JhcGhpY3NMYXllclJlcHJlc2VudGF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIG1fZ3Jh
cGhpY3NMYXllciA9PSBvdGhlci5tX2dyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgICAmJiBt
X2xheWVySUQgPT0gb3RoZXIubV9sYXllcklEOworICAgICAgICBjYXNlIFBsYXRmb3JtTGF5ZXJS
ZXByZXNlbnRhdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBtX3BsYXRmb3JtTGF5ZXIgPT0gb3Ro
ZXIubV9wbGF0Zm9ybUxheWVyOworICAgICAgICBjYXNlIFBsYXRmb3JtTGF5ZXJJRFJlcHJlc2Vu
dGF0aW9uOgorICAgICAgICAgICAgcmV0dXJuIG1fbGF5ZXJJRCA9PSBvdGhlci5tX2xheWVySUQ7
CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIExheWVy
UmVwcmVzZW50YXRpb24gdG9QbGF0Zm9ybUxheWVyKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX3JlcHJlc2VudGF0aW9uID09IEdyYXBoaWNzTGF5ZXJSZXByZXNlbnRhdGlvbik7Cisg
ICAgICAgIHJldHVybiBtX2dyYXBoaWNzTGF5ZXIgPyBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3Jt
TGF5ZXIoKSA6IG51bGxwdHI7CisgICAgfQorICAgIAorICAgIGJvb2wgcmVwcmVzZW50c0dyYXBo
aWNzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3JlcHJlc2VudGF0aW9uID09IEdyYXBoaWNzTGF5
ZXJSZXByZXNlbnRhdGlvbjsgfQorICAgIGJvb2wgcmVwcmVzZW50c1BsYXRmb3JtTGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3JlcHJlc2VudGF0aW9uID09IFBsYXRmb3JtTGF5ZXJSZXByZXNlbnRh
dGlvbjsgfQorICAgIGJvb2wgcmVwcmVzZW50c1BsYXRmb3JtTGF5ZXJJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVwcmVzZW50YXRpb24gPT0gUGxhdGZvcm1MYXllcklEUmVwcmVzZW50YXRpb247IH0K
KworcHJpdmF0ZToKKyAgICB1bmlvbiB7CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIG1fZ3JhcGhp
Y3NMYXllcjsKKyAgICAgICAgUGxhdGZvcm1MYXllciAqbV9wbGF0Zm9ybUxheWVyOworICAgIH07
CisKKyAgICBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbV9sYXllcklEOworICAgIExh
eWVyUmVwcmVzZW50YXRpb25UeXBlIG1fcmVwcmVzZW50YXRpb247Cit9OworCiBjbGFzcyBTY3Jv
bGxpbmdTdGF0ZU5vZGUgewogcHVibGljOgogICAgIFNjcm9sbGluZ1N0YXRlTm9kZShTY3JvbGxp
bmdOb2RlVHlwZSwgU2Nyb2xsaW5nU3RhdGVUcmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsKQEAgLTY4
LDEwICsxNjMsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyUG9zaXRp
b25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgLyp2aWV3cG9ydFJlY3QqLykgeyB9
CiAKLSAgICBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKCkgeyByZXR1cm4gbV9ncmFwaGlj
c0xheWVyOyB9Ci0gICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1TY3JvbGxMYXllcigpIGNvbnN0
OwotICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXIoR3JhcGhpY3NMYXllciopOwotICAgIHZvaWQgc2V0
U2Nyb2xsUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKik7CisgICAgY29uc3QgTGF5ZXJSZXBy
ZXNlbnRhdGlvbiYgbGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVyOyB9CisgICAgdm9pZCBz
ZXRMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CiAKICAgICBTY3JvbGxpbmdTdGF0
ZVRyZWUmIHNjcm9sbGluZ1N0YXRlVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nU3Rh
dGVUcmVlOyB9CiAKQEAgLTEwNiwxMCArMTk5LDcgQEAgcHJpdmF0ZToKICAgICBTY3JvbGxpbmdT
dGF0ZU5vZGUqIG1fcGFyZW50OwogICAgIE93blB0cjxWZWN0b3I8T3duUHRyPFNjcm9sbGluZ1N0
YXRlTm9kZT4+PiBtX2NoaWxkcmVuOwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIFJldGFpblB0
cjxQbGF0Zm9ybUxheWVyPiBtX3BsYXRmb3JtU2Nyb2xsTGF5ZXI7Ci0jZW5kaWYKLSAgICBHcmFw
aGljc0xheWVyKiBtX2dyYXBoaWNzTGF5ZXI7CisgICAgTGF5ZXJSZXByZXNlbnRhdGlvbiBtX2xh
eWVyOwogfTsKIAogI2RlZmluZSBTQ1JPTExJTkdfU1RBVEVfTk9ERV9UWVBFX0NBU1RTKFRvVmFs
dWVUeXBlTmFtZSwgcHJlZGljYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAppbmRleCAw
NmY2YjNlOWRkZWUxODRhNWFlMDE2ZmJiY2Q5ZDg4NGMwZjY5NjBmLi44MzA1MTc4M2YzZDE1MGQ0
MjMyMWMwMjkwMDEyY2RmMGEzZDA5MDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKQEAg
LTQxLDkgKzQxLDYgQEAgUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+IFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKFNjcm8KIAogU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nU3RhdGVU
cmVlJiBzdGF0ZVRyZWUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiAgICAgOiBTY3JvbGxpbmdT
dGF0ZU5vZGUoU2Nyb2xsaW5nTm9kZSwgc3RhdGVUcmVlLCBub2RlSUQpCi0gICAgLCBtX2NvdW50
ZXJTY3JvbGxpbmdMYXllcigwKQotICAgICwgbV9oZWFkZXJMYXllcigwKQotICAgICwgbV9mb290
ZXJMYXllcigwKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fdmVydGljYWxTY3JvbGxiYXJQ
YWludGVyKDApCiAgICAgLCBtX2hvcml6b250YWxTY3JvbGxiYXJQYWludGVyKDApCkBAIC03OCw5
ICs3NSwxMSBAQCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZVNjcgogICAgICwgbV9yZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbihzdGF0ZU5vZGUucmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24oKSkKICAgICAsIG1f
cmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKHN0YXRl
Tm9kZS5yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwo
KSkKIHsKLSAgICBzZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIoc3RhdGVOb2RlLmNvdW50ZXJTY3Jv
bGxpbmdMYXllcigpKTsKLSAgICBzZXRIZWFkZXJMYXllcihzdGF0ZU5vZGUuaGVhZGVyTGF5ZXIo
KSk7Ci0gICAgc2V0Rm9vdGVyTGF5ZXIoc3RhdGVOb2RlLmZvb3RlckxheWVyKCkpOworICAgIC8v
IFRoZSBjbG9uZWQgdHJlZSByZWZlcmVuY2VzIFBsYXRmb3JtTGF5ZXJzLCB3aGljaCBhcmUgc2Fm
ZSB0byBzZW5kIHRvIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgorICAgIC8vIEZJWE1FOiB0aGlzIE1h
YyB0aHJlYWRlZC1zY3JvbGxpbmcgYXNzdW1wdGlvbiBkb2Vzbid0IGJlbG9uZyBoZXJlLgorICAg
IHNldENvdW50ZXJTY3JvbGxpbmdMYXllcihzdGF0ZU5vZGUuY291bnRlclNjcm9sbGluZ0xheWVy
KCkudG9QbGF0Zm9ybUxheWVyKCkpOworICAgIHNldEhlYWRlckxheWVyKHN0YXRlTm9kZS5oZWFk
ZXJMYXllcigpLnRvUGxhdGZvcm1MYXllcigpKTsKKyAgICBzZXRGb290ZXJMYXllcihzdGF0ZU5v
ZGUuZm9vdGVyTGF5ZXIoKS50b1BsYXRmb3JtTGF5ZXIoKSk7CiB9CiAKIFNjcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZTo6flNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSgpCkBAIC0yMTEsNiAr
MjEwLDQwIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJIZWln
aHQoaW50IGZvb3RlckhlaWdodCkKICAgICBzY3JvbGxpbmdTdGF0ZVRyZWUoKS5zZXRIYXNDaGFu
Z2VkUHJvcGVydGllcyh0cnVlKTsKIH0KIAordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OnNldENvdW50ZXJTY3JvbGxpbmdMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBs
YXllclJlcHJlc2VudGF0aW9uKQoreworICAgIGlmIChsYXllclJlcHJlc2VudGF0aW9uID09IG1f
Y291bnRlclNjcm9sbGluZ0xheWVyKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jb3Vu
dGVyU2Nyb2xsaW5nTGF5ZXIgPSBsYXllclJlcHJlc2VudGF0aW9uOworCisgICAgc2V0UHJvcGVy
dHlDaGFuZ2VkKENvdW50ZXJTY3JvbGxpbmdMYXllcik7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVl
KCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7Cit9CisKK3ZvaWQgU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlOjpzZXRIZWFkZXJMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9u
JiBsYXllclJlcHJlc2VudGF0aW9uKQoreworICAgIGlmIChsYXllclJlcHJlc2VudGF0aW9uID09
IG1faGVhZGVyTGF5ZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2hlYWRlckxheWVy
ID0gbGF5ZXJSZXByZXNlbnRhdGlvbjsKKworICAgIHNldFByb3BlcnR5Q2hhbmdlZChIZWFkZXJM
YXllcik7CisgICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMo
dHJ1ZSk7Cit9CisKKwordm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldEZvb3Rl
ckxheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyUmVwcmVzZW50YXRpb24pCit7
CisgICAgaWYgKGxheWVyUmVwcmVzZW50YXRpb24gPT0gbV9mb290ZXJMYXllcikKKyAgICAgICAg
cmV0dXJuOworICAgIAorICAgIG1fZm9vdGVyTGF5ZXIgPSBsYXllclJlcHJlc2VudGF0aW9uOwor
CisgICAgc2V0UHJvcGVydHlDaGFuZ2VkKEZvb3RlckxheWVyKTsKKyAgICBzY3JvbGxpbmdTdGF0
ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKK30KKwogdm9pZCBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQg
aW5kZW50KSBjb25zdAogewogICAgIHRzIDw8ICIoIiA8PCAiU2Nyb2xsaW5nIG5vZGUiIDw8ICJc
biI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDc1NmNhYjNiNmRhZDdkY2Y3ZWI1MTYzN2Zl
MWZjOTcwNzE3MjY0MjQuLjczNDk0MTYyZjVmYmE4MmIxNmVmZGVkMTFjN2JjZWU1NmJiMDhhMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKSB8fCBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAKKyNpbmNsdWRl
ICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlJlZ2lv
bi5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCkBAIC0xMDQsMTkgKzEwNSwxNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRGb290ZXJIZWlnaHQoaW50KTsKIAogICAgIC8vIFRoaXMgaXMgYSBs
YXllciBtb3ZlZCBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIHRvIHNjcm9sbGluZywgZm9yIGV4
YW1wbGUgZm9yIGJhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZAotICAgIEdyYXBoaWNzTGF5ZXIq
IGNvdW50ZXJTY3JvbGxpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY291bnRlclNjcm9sbGlu
Z0xheWVyOyB9Ci0gICAgdm9pZCBzZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXIoR3JhcGhpY3NMYXll
ciopOwotICAgIFBsYXRmb3JtTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdQbGF0Zm9ybUxheWVyKCkg
Y29uc3Q7CisgICAgY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgY291bnRlclNjcm9sbGluZ0xh
eWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXI7IH0KKyAgICB2b2lk
IHNldENvdW50ZXJTY3JvbGxpbmdMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJik7CiAK
ICAgICAvLyBUaGUgaGVhZGVyIGFuZCBmb290ZXIgbGF5ZXJzIHNjcm9sbCB2ZXJ0aWNhbGx5IHdp
dGggdGhlIHBhZ2UsIHRoZXkgc2hvdWxkIHJlbWFpbiBmaXhlZCB3aGVuIHNjcm9sbGluZyBob3Jp
em9udGFsbHkuCi0gICAgR3JhcGhpY3NMYXllciogaGVhZGVyTGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX2hlYWRlckxheWVyOyB9Ci0gICAgdm9pZCBzZXRIZWFkZXJMYXllcihHcmFwaGljc0xheWVy
Kik7Ci0gICAgUGxhdGZvcm1MYXllciogaGVhZGVyUGxhdGZvcm1MYXllcigpIGNvbnN0OworICAg
IGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGhlYWRlckxheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9oZWFkZXJMYXllcjsgfQorICAgIHZvaWQgc2V0SGVhZGVyTGF5ZXIoY29uc3QgTGF5ZXJSZXBy
ZXNlbnRhdGlvbiYpOwogCiAgICAgLy8gVGhlIGhlYWRlciBhbmQgZm9vdGVyIGxheWVycyBzY3Jv
bGwgdmVydGljYWxseSB3aXRoIHRoZSBwYWdlLCB0aGV5IHNob3VsZCByZW1haW4gZml4ZWQgd2hl
biBzY3JvbGxpbmcgaG9yaXpvbnRhbGx5LgotICAgIEdyYXBoaWNzTGF5ZXIqIGZvb3RlckxheWVy
KCkgY29uc3QgeyByZXR1cm4gbV9mb290ZXJMYXllcjsgfQotICAgIHZvaWQgc2V0Rm9vdGVyTGF5
ZXIoR3JhcGhpY3NMYXllciopOwotICAgIFBsYXRmb3JtTGF5ZXIqIGZvb3RlclBsYXRmb3JtTGF5
ZXIoKSBjb25zdDsKKyAgICBjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBmb290ZXJMYXllcigp
IGNvbnN0IHsgcmV0dXJuIG1fZm9vdGVyTGF5ZXI7IH0KKyAgICB2b2lkIHNldEZvb3RlckxheWVy
KGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBT
Y3JvbGxiYXJQYWludGVyIHZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlcigpIGNvbnN0IHsgcmV0dXJu
IG1fdmVydGljYWxTY3JvbGxiYXJQYWludGVyOyB9CkBAIC0xMzIsMTMgKzEzMCwxMSBAQCBwcml2
YXRlOgogICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdTdGF0ZVRyZWUm
LCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZShjb25z
dCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUmLCBTY3JvbGxpbmdTdGF0ZVRyZWUmKTsKIAot
ICAgIEdyYXBoaWNzTGF5ZXIqIG1fY291bnRlclNjcm9sbGluZ0xheWVyOwotICAgIEdyYXBoaWNz
TGF5ZXIqIG1faGVhZGVyTGF5ZXI7Ci0gICAgR3JhcGhpY3NMYXllciogbV9mb290ZXJMYXllcjsK
KyAgICBMYXllclJlcHJlc2VudGF0aW9uIG1fY291bnRlclNjcm9sbGluZ0xheWVyOworICAgIExh
eWVyUmVwcmVzZW50YXRpb24gbV9oZWFkZXJMYXllcjsKKyAgICBMYXllclJlcHJlc2VudGF0aW9u
IG1fZm9vdGVyTGF5ZXI7CisKICNpZiBQTEFURk9STShNQUMpCi0gICAgUmV0YWluUHRyPFBsYXRm
b3JtTGF5ZXI+IG1fY291bnRlclNjcm9sbGluZ1BsYXRmb3JtTGF5ZXI7Ci0gICAgUmV0YWluUHRy
PFBsYXRmb3JtTGF5ZXI+IG1faGVhZGVyUGxhdGZvcm1MYXllcjsKLSAgICBSZXRhaW5QdHI8UGxh
dGZvcm1MYXllcj4gbV9mb290ZXJQbGF0Zm9ybUxheWVyOwogICAgIFNjcm9sbGJhclBhaW50ZXIg
bV92ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXI7CiAgICAgU2Nyb2xsYmFyUGFpbnRlciBtX2hvcml6
b250YWxTY3JvbGxiYXJQYWludGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcAppbmRleCBl
NjkwNjNjZDZjNDkzM2ViNjI4YTllYTZlNDkzZDdmODRlMTFlMTNjLi4xMmU3OGVmMWM0NmQ1MzM3
OTY0ZmFjMGM5NGE0YjQ0MDg0MDI4NmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKQEAgLTczLDcg
KzczLDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGU6OnVwZGF0ZUNvbnN0cmFpbnRz
KGNvbnN0IFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb24KIHZvaWQgU2Nyb2xsaW5nU3RhdGVTdGlj
a3lOb2RlOjpzeW5jTGF5ZXJQb3NpdGlvbkZvclZpZXdwb3J0UmVjdChjb25zdCBMYXlvdXRSZWN0
JiB2aWV3cG9ydFJlY3QpCiB7CiAgICAgRmxvYXRQb2ludCBwb3NpdGlvbiA9IG1fY29uc3RyYWlu
dHMubGF5ZXJQb3NpdGlvbkZvckNvbnN0cmFpbmluZ1JlY3Qodmlld3BvcnRSZWN0KTsKLSAgICBn
cmFwaGljc0xheWVyKCktPnN5bmNQb3NpdGlvbihwb3NpdGlvbik7CisgICAgc3RhdGljX2Nhc3Q8
R3JhcGhpY3NMYXllcio+KGxheWVyKCkpLT5zeW5jUG9zaXRpb24ocG9zaXRpb24pOwogfQogCiB2
b2lkIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYg
dHMsIGludCBpbmRlbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nU3RhdGVOb2RlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlTm9kZU1hYy5tbQppbmRleCBhOWYxNjI4Yzcx
OWJhN2E5NjhkMzJhNjQyYmNmM2EwZWY2NjBjNmYxLi4wMDQ4MzY3ZjlkZDVlYWEzOTZkMWY0MThm
NzI0ZmE3NTM4NTg1YzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nU3RhdGVOb2RlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZU5vZGVNYWMubW0KQEAgLTMzLDMwICszMyw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGxhdGZvcm1MYXllciogU2Nyb2xsaW5nU3RhdGVO
b2RlOjpwbGF0Zm9ybVNjcm9sbExheWVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF0Zm9y
bVNjcm9sbExheWVyLmdldCgpOwotfQotCi12b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6c2V0U2Ny
b2xsUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQotewotICAgIG1f
cGxhdGZvcm1TY3JvbGxMYXllciA9IHBsYXRmb3JtTGF5ZXI7Ci19Ci0KLXZvaWQgU2Nyb2xsaW5n
U3RhdGVOb2RlOjpzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQot
ewotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtU2Nyb2xsTGF5ZXIgPSBncmFwaGljc0xheWVy
ID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwotCi0gICAgaWYgKG1fcGxh
dGZvcm1TY3JvbGxMYXllciA9PSBwbGF0Zm9ybVNjcm9sbExheWVyKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX3BsYXRmb3JtU2Nyb2xsTGF5ZXIgPSBwbGF0Zm9ybVNjcm9sbExheWVyOwotICAg
IG1fZ3JhcGhpY3NMYXllciA9IGdyYXBoaWNzTGF5ZXI7Ci0KLSAgICBzZXRQcm9wZXJ0eUNoYW5n
ZWQoU2Nyb2xsTGF5ZXIpOwotICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgpLnNldEhhc0NoYW5nZWRQ
cm9wZXJ0aWVzKHRydWUpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGVN
YWMubW0KaW5kZXggNTQ0MjNhZTFmNTk5NWIzNTAzOTVmZWNmNzUwZGRhNjI3NDkwM2RhMi4uZjdi
NWMzMGRkZDBhZGU1Zjk4N2FiMWI0YzM2YzhjNTVhZmUzOTM4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0zNCw2MSArMzQsNiBAQAogI2lmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGxhdGZvcm1MYXllciogU2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpjb3VudGVyU2Nyb2xsaW5nUGxhdGZvcm1MYXllcigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY291bnRlclNjcm9sbGluZ1BsYXRmb3JtTGF5ZXIuZ2V0
KCk7Ci19Ci0KLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRDb3VudGVyU2Ny
b2xsaW5nTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKLXsKLSAgICBQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybVNjcm9sbExheWVyID0gZ3JhcGhpY3NMYXllciA/IGdyYXBoaWNzTGF5
ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKLSAgICBpZiAobV9jb3VudGVyU2Nyb2xsaW5nUGxh
dGZvcm1MYXllciA9PSBwbGF0Zm9ybVNjcm9sbExheWVyKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX2NvdW50ZXJTY3JvbGxpbmdQbGF0Zm9ybUxheWVyID0gcGxhdGZvcm1TY3JvbGxMYXllcjsK
LSAgICBtX2NvdW50ZXJTY3JvbGxpbmdMYXllciA9IGdyYXBoaWNzTGF5ZXI7Ci0KLSAgICBzZXRQ
cm9wZXJ0eUNoYW5nZWQoQ291bnRlclNjcm9sbGluZ0xheWVyKTsKLSAgICBzY3JvbGxpbmdTdGF0
ZVRyZWUoKS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcyh0cnVlKTsKLX0KLQotUGxhdGZvcm1MYXll
ciogU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpoZWFkZXJQbGF0Zm9ybUxheWVyKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9oZWFkZXJQbGF0Zm9ybUxheWVyLmdldCgpOwotfQotCi12b2lk
IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKLXsKLSAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUhlYWRlckxh
eWVyID0gZ3JhcGhpY3NMYXllciA/IGdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IG5p
bDsKLSAgICBpZiAobV9oZWFkZXJQbGF0Zm9ybUxheWVyID09IHBsYXRmb3JtSGVhZGVyTGF5ZXIp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIG1faGVhZGVyUGxhdGZvcm1MYXllciA9IHBsYXRmb3Jt
SGVhZGVyTGF5ZXI7Ci0gICAgbV9oZWFkZXJMYXllciA9IGdyYXBoaWNzTGF5ZXI7Ci0KLSAgICBz
ZXRQcm9wZXJ0eUNoYW5nZWQoSGVhZGVyTGF5ZXIpOwotICAgIHNjcm9sbGluZ1N0YXRlVHJlZSgp
LnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKHRydWUpOwotfQotCi1QbGF0Zm9ybUxheWVyKiBTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmZvb3RlclBsYXRmb3JtTGF5ZXIoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2Zvb3RlclBsYXRmb3JtTGF5ZXIuZ2V0KCk7Ci19Ci0KLXZvaWQgU2Nyb2xs
aW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRGb290ZXJMYXllcihHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQotewotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtRm9vdGVyTGF5ZXIgPSBn
cmFwaGljc0xheWVyID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwotICAg
IGlmIChtX2Zvb3RlclBsYXRmb3JtTGF5ZXIgPT0gcGxhdGZvcm1Gb290ZXJMYXllcikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9mb290ZXJQbGF0Zm9ybUxheWVyID0gcGxhdGZvcm1Gb290ZXJM
YXllcjsKLSAgICBtX2Zvb3RlckxheWVyID0gZ3JhcGhpY3NMYXllcjsKLQotICAgIHNldFByb3Bl
cnR5Q2hhbmdlZChGb290ZXJMYXllcik7Ci0gICAgc2Nyb2xsaW5nU3RhdGVUcmVlKCkuc2V0SGFz
Q2hhbmdlZFByb3BlcnRpZXModHJ1ZSk7Ci19Ci0KIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpzZXRTY3JvbGxiYXJQYWludGVyc0Zyb21TY3JvbGxiYXJzKFNjcm9sbGJhciogdmVy
dGljYWxTY3JvbGxiYXIsIFNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9sbGJhcikKIHsKICAgICBT
Y3JvbGxiYXJUaGVtZSogc2Nyb2xsYmFyVGhlbWUgPSBTY3JvbGxiYXJUaGVtZTo6dGhlbWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlRml4ZWROb2RlLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGaXhlZE5vZGUubW0KaW5kZXggYzQwNGFjZDMwNDE0ZTRjMjFjMzkyZmMwOWMxZGFm
ZTRhZWNjMDdlYS4uMmM4MTA0OWRiYmUzMzg1MzkyYTAzMTA1MzJmYWRhY2ZhYTg1NWM1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVG
aXhlZE5vZGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGaXhlZE5vZGUubW0KQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
Rml4ZWROb2RlOjp1cGRhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUm
IHN0YXQKICAgICBjb25zdCBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZSYgZml4ZWRTdGF0ZU5vZGUg
PSB0b1Njcm9sbGluZ1N0YXRlRml4ZWROb2RlKHN0YXRlTm9kZSk7CiAKICAgICBpZiAoZml4ZWRT
dGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5
ZXIpKQotICAgICAgICBtX2xheWVyID0gZml4ZWRTdGF0ZU5vZGUucGxhdGZvcm1TY3JvbGxMYXll
cigpOworICAgICAgICBtX2xheWVyID0gZml4ZWRTdGF0ZU5vZGUubGF5ZXIoKTsKIAogICAgIGlm
IChzdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpW
aWV3cG9ydENvbnN0cmFpbnRzKSkKICAgICAgICAgbV9jb25zdHJhaW50cyA9IGZpeGVkU3RhdGVO
b2RlLnZpZXdwb3J0Q29uc3RyYWludHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
Yy5tbQppbmRleCAzYjM1ZTM1NmM4YWIyY2EyNDYyYzM1ZTE4NGRhMTE0YmQ5M2MwM2JmLi5lYjdk
MjAxZGJiNTQzYTc5NmU0MTlkMGU3Njg4Nzk2ZGVjMzhmYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlTWFjLm1tCkBAIC03NiwxNiArNzYsMTYgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZU1hYzo6dXBkYXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3Rh
dGVOb2QKICAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSB0b1Njcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZShzdGF0ZU5vZGUpOwogCiAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9k
ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxMYXllcikpCi0g
ICAgICAgIG1fc2Nyb2xsTGF5ZXIgPSBzY3JvbGxpbmdTdGF0ZU5vZGUucGxhdGZvcm1TY3JvbGxM
YXllcigpOworICAgICAgICBtX3Njcm9sbExheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2RlLmxheWVy
KCk7CiAKICAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OkNvdW50ZXJTY3JvbGxpbmdMYXllcikpCi0gICAgICAg
IG1fY291bnRlclNjcm9sbGluZ0xheWVyID0gc2Nyb2xsaW5nU3RhdGVOb2RlLmNvdW50ZXJTY3Jv
bGxpbmdQbGF0Zm9ybUxheWVyKCk7CisgICAgICAgIG1fY291bnRlclNjcm9sbGluZ0xheWVyID0g
c2Nyb2xsaW5nU3RhdGVOb2RlLmNvdW50ZXJTY3JvbGxpbmdMYXllcigpOwogCiAgICAgaWYgKHNj
cm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpIZWFkZXJMYXllcikpCi0gICAgICAgIG1faGVhZGVyTGF5ZXIgPSBzY3JvbGxpbmdT
dGF0ZU5vZGUuaGVhZGVyUGxhdGZvcm1MYXllcigpOworICAgICAgICBtX2hlYWRlckxheWVyID0g
c2Nyb2xsaW5nU3RhdGVOb2RlLmhlYWRlckxheWVyKCk7CiAKICAgICBpZiAoc2Nyb2xsaW5nU3Rh
dGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OkZv
b3RlckxheWVyKSkKLSAgICAgICAgbV9mb290ZXJMYXllciA9IHNjcm9sbGluZ1N0YXRlTm9kZS5m
b290ZXJQbGF0Zm9ybUxheWVyKCk7CisgICAgICAgIG1fZm9vdGVyTGF5ZXIgPSBzY3JvbGxpbmdT
dGF0ZU5vZGUuZm9vdGVyTGF5ZXIoKTsKIAogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFz
Q2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UGFpbnRlckZvclNj
cm9sbGJhcikpIHsKICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXIgPSBzY3JvbGxp
bmdTdGF0ZU5vZGUudmVydGljYWxTY3JvbGxiYXJQYWludGVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGUubW0KaW5kZXggYzE0ODU3MjZiYzA0N2JjZGRiZjViNmViZTkzOGU4NjY0M2RkZTI3Ny4uYmJh
MDU0MDM1ZmZkNTNhMjQ2NDBiNzRhODY5YjllZGIyNGRmYmJjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU3RpY2t5
Tm9kZS5tbQpAQCAtNTIsNyArNTIsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjp1
cGRhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmIHN0YQogICAgIGNv
bnN0IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZSYgc3RpY2t5U3RhdGVOb2RlID0gdG9TY3JvbGxp
bmdTdGF0ZVN0aWNreU5vZGUoc3RhdGVOb2RlKTsKIAogICAgIGlmIChzdGlja3lTdGF0ZU5vZGUu
aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQotICAg
ICAgICBtX2xheWVyID0gc3RpY2t5U3RhdGVOb2RlLnBsYXRmb3JtU2Nyb2xsTGF5ZXIoKTsKKyAg
ICAgICAgbV9sYXllciA9IHN0aWNreVN0YXRlTm9kZS5sYXllcigpOwogCiAgICAgaWYgKHN0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlOjpWaWV3cG9y
dENvbnN0cmFpbnRzKSkKICAgICAgICAgbV9jb25zdHJhaW50cyA9IHN0aWNreVN0YXRlTm9kZS52
aWV3cG9ydENvbnN0cmFpbnRzKCk7Cg==
</data>
<flag name="review"
          id="244059"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="244060"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>