<?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>218344</bug_id>
          
          <creation_ts>2020-10-29 09:38:11 -0700</creation_ts>
          <short_desc>[LFC][Integration] Rename text run localStart/EndOffset to start/end</short_desc>
          <delta_ts>2020-10-29 10:22:17 -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>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1702758</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-29 09:38:11 -0700</bug_when>
    <thetext>There is no danger of confusion and these are called just start/end elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702759</commentid>
    <comment_count>1</comment_count>
      <attachid>412661</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-29 09:39:57 -0700</bug_when>
    <thetext>Created attachment 412661
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702762</commentid>
    <comment_count>2</comment_count>
      <attachid>412662</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-29 09:43:34 -0700</bug_when>
    <thetext>Created attachment 412662
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702771</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-29 10:21:15 -0700</bug_when>
    <thetext>Committed r269153: &lt;https://trac.webkit.org/changeset/269153&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412662.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702773</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-29 10:22:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/70814882&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412661</attachid>
            <date>2020-10-29 09:39:57 -0700</date>
            <delta_ts>2020-10-29 09:43:34 -0700</delta_ts>
            <desc>patch</desc>
            <filename>startend-rename.patch</filename>
            <type>text/plain</type>
            <size>15939</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NTNkM2U5MzcwY2YuLmY3OGU5ZTJiZTljOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ3IEBACisyMDIwLTEwLTI5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuYW1lIHRleHQgcnVuIGxvY2FsU3Rh
cnQvRW5kT2Zmc2V0IHRvIHN0YXJ0L2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBkb20v
UG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OnVwc3RyZWFtIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpkb3duc3RyZWFtIGNvbnN0KToKKyAgICAg
ICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0SXRl
cmF0b3I6OmhhbmRsZVRleHRSdW4pOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVVuaXRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0UG9zaXRpb25Gb3JMaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6OmVuZFBvc2l0aW9uRm9yTGluZSk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bjo6c3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVuOjplbmQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVuOjpsb2NhbFN0YXJ0T2Zmc2V0
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQ
YXRoVGV4dFJ1bjo6bG9jYWxFbmRPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5o
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yTGVnYWN5
UGF0aDo6c3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OlJ1bkl0ZXJhdG9yTGVnYWN5UGF0aDo6ZW5kIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvckxlZ2FjeVBhdGg6OmxvY2FsU3RhcnRPZmZzZXQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1
bkl0ZXJhdG9yTGVnYWN5UGF0aDo6bG9jYWxFbmRPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9k
ZXJuUGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJh
dG9yTW9kZXJuUGF0aDo6bWluaW11bUNhcmV0T2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvck1vZGVyblBhdGg6Om1heGltdW1DYXJl
dE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVu
SXRlcmF0b3JNb2Rlcm5QYXRoOjpzdGFydCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3JNb2Rlcm5QYXRoOjplbmQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yTW9kZXJuUGF0aDo6bG9j
YWxTdGFydE9mZnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3JNb2Rlcm5QYXRoOjpsb2NhbEVuZE9mZnNldCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpwb3NpdGlvbkZvclJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVmlzaWJsZVBvc2l0aW9uQWZ0ZXJB
ZGp1c3RpbmdPZmZzZXRGb3JCaURpKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnBv
c2l0aW9uRm9yUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6Y2FyZXRNaW5P
ZmZzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6Y2FyZXRNYXhPZmZz
ZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6Y291bnRSZW5kZXJlZENo
YXJhY3Rlck9mZnNldHNVbnRpbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjb250YWluc09m
ZnNldCk6CisKIDIwMjAtMTAtMjkgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBSZW5hbWUgdG9wL2JvdHRvbVdpdGhMZWFkaW5n
IHRvIGxpbmVCb3hUb3AvQm90dG9tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCBkMTNlZGMx
MjQ3MGIuLmRmOTkzYmU3YjMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC03NTEsMTMg
Kzc1MSwxMyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6dXBzdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jv
c3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAKICAgICAgICAgICAgIHVuc2lnbmVkIHRleHRPZmZzZXQg
PSBjdXJyZW50UG9zaXRpb24ub2Zmc2V0SW5MZWFmTm9kZSgpOwogICAgICAgICAgICAgZm9yIChh
dXRvIHJ1biA9IGZpcnN0VGV4dFJ1bjsgcnVuOyBydW4udHJhdmVyc2VOZXh0VGV4dFJ1bkluVGV4
dE9yZGVyKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA8PSBydW4tPmxvY2Fs
RW5kT2Zmc2V0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPiBydW4t
PmxvY2FsU3RhcnRPZmZzZXQoKSkKKyAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA8PSBy
dW4tPmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0ID4gcnVuLT5z
dGFydCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPT0gcnVuLT5sb2NhbEVuZE9mZnNldCgpICsgMSAm
JiBydW4tPmlzTGFzdFRleHRSdW5PbkxpbmUoKSAmJiAhcnVuLT5pc0xhc3RUZXh0UnVuKCkpCisg
ICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPT0gcnVuLT5lbmQoKSArIDEgJiYgcnVuLT5p
c0xhc3RUZXh0UnVuT25MaW5lKCkgJiYgIXJ1bi0+aXNMYXN0VGV4dFJ1bigpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC04NTQsMTYgKzg1NCwxNiBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6ZG93bnN0cmVhbShF
ZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKIAogICAgICAgICAgICAgdW5z
aWduZWQgdGV4dE9mZnNldCA9IGN1cnJlbnRQb3NpdGlvbi5vZmZzZXRJbkxlYWZOb2RlKCk7CiAg
ICAgICAgICAgICBmb3IgKGF1dG8gcnVuID0gZmlyc3RUZXh0UnVuOyBydW47IHJ1bi50cmF2ZXJz
ZU5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKSkgewotICAgICAgICAgICAgICAgIGlmICghcnVuLT5s
ZW5ndGgoKSAmJiB0ZXh0T2Zmc2V0ID09IHJ1bi0+bG9jYWxTdGFydE9mZnNldCgpKQorICAgICAg
ICAgICAgICAgIGlmICghcnVuLT5sZW5ndGgoKSAmJiB0ZXh0T2Zmc2V0ID09IHJ1bi0+c3RhcnQo
KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKIAotICAgICAg
ICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0IDwgcnVuLT5sb2NhbEVuZE9mZnNldCgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0ID49IHJ1bi0+bG9jYWxTdGFydE9mZnNldCgp
KQorICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0IDwgcnVuLT5lbmQoKSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA+PSBydW4tPnN0YXJ0KCkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAodGV4
dE9mZnNldCA9PSBydW4tPmxvY2FsRW5kT2Zmc2V0KCkgJiYgcnVuLT5pc0xhc3RUZXh0UnVuT25M
aW5lKCkgJiYgIXJ1bi0+aXNMYXN0VGV4dFJ1bigpKQorICAgICAgICAgICAgICAgIGlmICh0ZXh0
T2Zmc2V0ID09IHJ1bi0+ZW5kKCkgJiYgcnVuLT5pc0xhc3RUZXh0UnVuT25MaW5lKCkgJiYgIXJ1
bi0+aXNMYXN0VGV4dFJ1bigpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBv
c2l0aW9uOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5jcHAKaW5kZXggMjhlZGNlNGZiYWQzLi4xMDFkNGRjYjBmNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lk
IFRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dFJ1bigpCiAgICAgdW5zaWduZWQgc3RhcnQgPSBtX29m
ZnNldDsKICAgICB1bnNpZ25lZCBlbmQgPSAoJnRleHROb2RlID09IG1fZW5kQ29udGFpbmVyKSA/
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2VuZE9mZnNldCkgOiBVSU5UX01BWDsKICAgICB3aGls
ZSAobV90ZXh0UnVuKSB7Ci0gICAgICAgIHVuc2lnbmVkIHRleHRSdW5TdGFydCA9IG1fdGV4dFJ1
bi0+bG9jYWxTdGFydE9mZnNldCgpOworICAgICAgICB1bnNpZ25lZCB0ZXh0UnVuU3RhcnQgPSBt
X3RleHRSdW4tPnN0YXJ0KCk7CiAgICAgICAgIHVuc2lnbmVkIHJ1blN0YXJ0ID0gc3RkOjptYXgo
dGV4dFJ1blN0YXJ0LCBzdGFydCk7CiAKICAgICAgICAgLy8gQ2hlY2sgZm9yIGNvbGxhcHNlZCBz
cGFjZSBhdCB0aGUgc3RhcnQgb2YgdGhpcyBydW4uCkBAIC02NjYsNyArNjY2LDcgQEAgdm9pZCBU
ZXh0SXRlcmF0b3I6OmhhbmRsZVRleHRSdW4oKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICAgICAgLy8gQWR2YW5jZSBhbmQgcmV0dXJuCi0gICAgICAgICAgICB1bnNpZ25lZCBu
ZXh0UnVuU3RhcnQgPSBuZXh0VGV4dFJ1biA/IG5leHRUZXh0UnVuLT5sb2NhbFN0YXJ0T2Zmc2V0
KCkgOiByZW5kZXJlclRleHQubGVuZ3RoKCk7CisgICAgICAgICAgICB1bnNpZ25lZCBuZXh0UnVu
U3RhcnQgPSBuZXh0VGV4dFJ1biA/IG5leHRUZXh0UnVuLT5zdGFydCgpIDogcmVuZGVyZXJUZXh0
Lmxlbmd0aCgpOwogICAgICAgICAgICAgaWYgKG5leHRSdW5TdGFydCA+IHJ1bkVuZCkKICAgICAg
ICAgICAgICAgICBtX2xhc3RUZXh0Tm9kZUVuZGVkV2l0aENvbGxhcHNlZFNwYWNlID0gdHJ1ZTsg
Ly8gY29sbGFwc2VkIHNwYWNlIGJldHdlZW4gcnVucyBvciBhdCB0aGUgZW5kCiAgICAgICAgICAg
ICBtX3RleHRSdW4gPSBuZXh0VGV4dFJ1bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVVuaXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVu
aXRzLmNwcAppbmRleCA2NjUxZWMzNTA2OGYuLmMwMmJiMzExYjFjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlVW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcApAQCAtODExLDcgKzgxMSw3IEBAIHN0YXRpYyBWaXNp
YmxlUG9zaXRpb24gc3RhcnRQb3NpdGlvbkZvckxpbmUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBj
LCBMaW5lRW5kcG9pCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gaXM8VGV4dD4oKnN0
YXJ0Tm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihzdGFydE5vZGUpLCBkb3duY2FzdDxM
YXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFRleHRSdW4+KCpzdGFydFJ1bikubG9jYWxTdGFydE9mZnNl
dCgpKQorICAgIHJldHVybiBpczxUZXh0Pigqc3RhcnROb2RlKSA/IFBvc2l0aW9uKGRvd25jYXN0
PFRleHQ+KHN0YXJ0Tm9kZSksIGRvd25jYXN0PExheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1
bj4oKnN0YXJ0UnVuKS5zdGFydCgpKQogICAgICAgICA6IHBvc2l0aW9uQmVmb3JlTm9kZShzdGFy
dE5vZGUpOwogfQogCkBAIC04OTEsNyArODkxLDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBl
bmRQb3NpdGlvbkZvckxpbmUoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBMaW5lRW5kcG9pbnQK
ICAgICAgICAgcG9zID0gcG9zaXRpb25CZWZvcmVOb2RlKGVuZE5vZGUpOwogICAgIGVsc2UgaWYg
KGlzPExheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bj4oKmVuZFJ1bikgJiYgaXM8VGV4dD4o
KmVuZE5vZGUpKSB7CiAgICAgICAgIGF1dG8mIGVuZFRleHRSdW4gPSBkb3duY2FzdDxMYXlvdXRJ
bnRlZ3JhdGlvbjo6UGF0aFRleHRSdW4+KCplbmRSdW4pOwotICAgICAgICBpbnQgZW5kT2Zmc2V0
ID0gZW5kVGV4dFJ1bi5sb2NhbFN0YXJ0T2Zmc2V0KCk7CisgICAgICAgIGludCBlbmRPZmZzZXQg
PSBlbmRUZXh0UnVuLnN0YXJ0KCk7CiAgICAgICAgIGlmICghZW5kVGV4dFJ1bi5pc0xpbmVCcmVh
aygpKQogICAgICAgICAgICAgZW5kT2Zmc2V0ICs9IGVuZFRleHRSdW4ubGVuZ3RoKCk7CiAgICAg
ICAgIHBvcyA9IFBvc2l0aW9uKGRvd25jYXN0PFRleHQ+KGVuZE5vZGUpLCBlbmRPZmZzZXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uUnVuSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKaW5kZXggZjY1ZmM5NDEzZGRhLi4wM2RhOGNl
ZDAyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaApAQCAtMTAzLDkgKzEwMyw4
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0h5cGhlbigpIGNvbnN0OwogICAgIFN0cmluZ1ZpZXcg
dGV4dCgpIGNvbnN0OwogCi0gICAgLy8gVGhlc2Ugb2Zmc2V0cyBhcmUgcmVsYXRpdmUgdG8gdGhl
IHRleHQgcmVuZGVyZXIgKG5vdCBmbG93KS4KLSAgICB1bnNpZ25lZCBsb2NhbFN0YXJ0T2Zmc2V0
KCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgbG9jYWxFbmRPZmZzZXQoKSBjb25zdDsKKyAgICB1bnNp
Z25lZCBzdGFydCgpIGNvbnN0OworICAgIHVuc2lnbmVkIGVuZCgpIGNvbnN0OwogICAgIHVuc2ln
bmVkIGxlbmd0aCgpIGNvbnN0OwogCiAgICAgdW5zaWduZWQgb2Zmc2V0Rm9yUG9zaXRpb24oZmxv
YXQgeCkgY29uc3Q7CkBAIC0yOTgsMTcgKzI5NywxNyBAQCBpbmxpbmUgU3RyaW5nVmlldyBQYXRo
VGV4dFJ1bjo6dGV4dCgpIGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGluZSB1bnNpZ25lZCBQYXRo
VGV4dFJ1bjo6bG9jYWxTdGFydE9mZnNldCgpIGNvbnN0CitpbmxpbmUgdW5zaWduZWQgUGF0aFRl
eHRSdW46OnN0YXJ0KCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhW
YXJpYW50LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAgIHJldHVybiBwYXRoLmxvY2FsU3RhcnRP
ZmZzZXQoKTsKKyAgICAgICAgcmV0dXJuIHBhdGguc3RhcnQoKTsKICAgICB9KTsKIH0KIAotaW5s
aW5lIHVuc2lnbmVkIFBhdGhUZXh0UnVuOjpsb2NhbEVuZE9mZnNldCgpIGNvbnN0CitpbmxpbmUg
dW5zaWduZWQgUGF0aFRleHRSdW46OmVuZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewotICAgICAgICByZXR1cm4gcGF0
aC5sb2NhbEVuZE9mZnNldCgpOworICAgICAgICByZXR1cm4gcGF0aC5lbmQoKTsKICAgICB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaApp
bmRleCBiMWY1MmQ0Yjc5NTkuLjQ2NmFiYWQwOTEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQ
YXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgKQEAgLTU1LDggKzU1LDggQEAgcHVibGljOgog
CiAgICAgYm9vbCBoYXNIeXBoZW4oKSBjb25zdCB7IHJldHVybiBpbmxpbmVUZXh0Qm94KCktPmhh
c0h5cGhlbigpOyB9CiAgICAgU3RyaW5nVmlldyB0ZXh0KCkgY29uc3QgeyByZXR1cm4gU3RyaW5n
VmlldyhpbmxpbmVUZXh0Qm94KCktPnJlbmRlcmVyKCkudGV4dCgpKS5zdWJzdHJpbmcoaW5saW5l
VGV4dEJveCgpLT5zdGFydCgpLCBpbmxpbmVUZXh0Qm94KCktPmxlbigpKTsgfQotICAgIHVuc2ln
bmVkIGxvY2FsU3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBpbmxpbmVUZXh0Qm94KCktPnN0
YXJ0KCk7IH0KLSAgICB1bnNpZ25lZCBsb2NhbEVuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIGlu
bGluZVRleHRCb3goKS0+ZW5kKCk7IH0KKyAgICB1bnNpZ25lZCBzdGFydCgpIGNvbnN0IHsgcmV0
dXJuIGlubGluZVRleHRCb3goKS0+c3RhcnQoKTsgfQorICAgIHVuc2lnbmVkIGVuZCgpIGNvbnN0
IHsgcmV0dXJuIGlubGluZVRleHRCb3goKS0+ZW5kKCk7IH0KICAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBpbmxpbmVUZXh0Qm94KCktPmxlbigpOyB9CiAKICAgICBpbmxpbmUg
dW5zaWduZWQgb2Zmc2V0Rm9yUG9zaXRpb24oZmxvYXQgeCkgY29uc3QgeyByZXR1cm4gaW5saW5l
VGV4dEJveCgpLT5vZmZzZXRGb3JQb3NpdGlvbih4KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rl
cm5QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaAppbmRleCBhN2MyNjQ4NTM3MmYuLmRlNDI1ZTZl
NzA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRo
LmgKQEAgLTU1LDE1ICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaXJPdmVycmlkZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0xpbmVCcmVhaygpIGNvbnN0IHsgcmV0
dXJuIHJ1bigpLmlzTGluZUJyZWFrKCk7IH0KIAotICAgIHVuc2lnbmVkIG1pbmltdW1DYXJldE9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIGlzVGV4dCgpID8gbG9jYWxTdGFydE9mZnNldCgpIDogMDsg
fQotICAgIHVuc2lnbmVkIG1heGltdW1DYXJldE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIGlzVGV4
dCgpID8gbG9jYWxFbmRPZmZzZXQoKSA6IDE7IH0KKyAgICB1bnNpZ25lZCBtaW5pbXVtQ2FyZXRP
ZmZzZXQoKSBjb25zdCB7IHJldHVybiBpc1RleHQoKSA/IHN0YXJ0KCkgOiAwOyB9CisgICAgdW5z
aWduZWQgbWF4aW11bUNhcmV0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gaXNUZXh0KCkgPyBlbmQo
KSA6IDE7IH0KIAogICAgIHVuc2lnbmVkIGNoYXIgYmlkaUxldmVsKCkgY29uc3QgeyByZXR1cm4g
MDsgfQogCiAgICAgYm9vbCBoYXNIeXBoZW4oKSBjb25zdCB7IHJldHVybiBydW4oKS50ZXh0Q29u
dGVudCgpLT5uZWVkc0h5cGhlbigpOyB9CiAgICAgU3RyaW5nVmlldyB0ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gcnVuKCkudGV4dENvbnRlbnQoKS0+Y29udGVudCgpOyB9Ci0gICAgdW5zaWduZWQgbG9j
YWxTdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHJ1bigpLnRleHRDb250ZW50KCktPnN0YXJ0
KCk7IH0KLSAgICB1bnNpZ25lZCBsb2NhbEVuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHJ1bigp
LnRleHRDb250ZW50KCktPmVuZCgpOyB9CisgICAgdW5zaWduZWQgc3RhcnQoKSBjb25zdCB7IHJl
dHVybiBydW4oKS50ZXh0Q29udGVudCgpLT5zdGFydCgpOyB9CisgICAgdW5zaWduZWQgZW5kKCkg
Y29uc3QgeyByZXR1cm4gcnVuKCkudGV4dENvbnRlbnQoKS0+ZW5kKCk7IH0KICAgICB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBydW4oKS50ZXh0Q29udGVudCgpLT5sZW5ndGgoKTsg
fQogCiAgICAgaW5saW5lIHVuc2lnbmVkIG9mZnNldEZvclBvc2l0aW9uKGZsb2F0IHgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDYz
MDQzOTc4YTQ0Yi4uNzE2ZWNkY2Q3MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzMxOCw3ICszMzE4LDcgQEAgc3RhdGljIFBvc2l0aW9u
IHBvc2l0aW9uRm9yUnVuKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdywgTGF5b3V0SW50ZWdy
YXRpb246OlIKICAgICAgICAgcmV0dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRpb24ocnVu
LT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyBydW4tPnJlbmRlcmVyKCkuY2Fy
ZXRNaW5PZmZzZXQoKSA6IHJ1bi0+cmVuZGVyZXIoKS5jYXJldE1heE9mZnNldCgpKTsKIAogICAg
IGF1dG8mIHRleHRSdW4gPSBkb3duY2FzdDxMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJh
dG9yPihydW4pOwotICAgIHJldHVybiBtYWtlRGVwcmVjYXRlZExlZ2FjeVBvc2l0aW9uKHRleHRS
dW4tPnJlbmRlcmVyKCkubm9uUHNldWRvTm9kZSgpLCBzdGFydCA/IHRleHRSdW4tPmxvY2FsU3Rh
cnRPZmZzZXQoKSA6IHRleHRSdW4tPmxvY2FsRW5kT2Zmc2V0KCkpOworICAgIHJldHVybiBtYWtl
RGVwcmVjYXRlZExlZ2FjeVBvc2l0aW9uKHRleHRSdW4tPnJlbmRlcmVyKCkubm9uUHNldWRvTm9k
ZSgpLCBzdGFydCA/IHRleHRSdW4tPnN0YXJ0KCkgOiB0ZXh0UnVuLT5lbmQoKSk7CiB9CiAKIFJl
bmRlclRleHQqIFJlbmRlckJsb2NrRmxvdzo6ZmluZENsb3Nlc3RUZXh0QXRBYnNvbHV0ZVBvaW50
KGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHQuY3BwCmluZGV4IDY5YmVlOGE5MGZkNS4uNDM2Y2MyZDEzZmRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC01MTUsNyArNTE1LDcgQEAgc3RhdGljIFZpc2li
bGVQb3NpdGlvbiBjcmVhdGVWaXNpYmxlUG9zaXRpb25BZnRlckFkanVzdGluZ09mZnNldEZvckJp
RGkoY29uc3QgTGEKICAgICBBU1NFUlQob2Zmc2V0ID49IDApOwogCiAgICAgaWYgKG9mZnNldCAm
JiBvZmZzZXQgPCBydW4tPmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gY3JlYXRlVmlzaWJsZVBv
c2l0aW9uRm9yQm94KHJ1biwgcnVuLT5sb2NhbFN0YXJ0T2Zmc2V0KCkgKyBvZmZzZXQsIHNob3Vs
ZEFmZmluaXR5QmVEb3duc3RyZWFtKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3Np
dGlvbkZvckJveChydW4sIHJ1bi0+c3RhcnQoKSArIG9mZnNldCwgc2hvdWxkQWZmaW5pdHlCZURv
d25zdHJlYW0pOwogCiAgICAgYm9vbCBwb3NpdGlvbklzQXRTdGFydE9mQm94ID0gIW9mZnNldDsK
ICAgICBpZiAocG9zaXRpb25Jc0F0U3RhcnRPZkJveCA9PSBydW4tPmlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oKSkgewpAQCAtNjE2LDcgKzYxNiw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0
Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgY29uc3QgUmVuCiAg
ICAgICAgICAgICAgICAgaWYgKHBvaW50TGluZURpcmVjdGlvbiAhPSBydW4tPmxvZ2ljYWxMZWZ0
KCkgJiYgcG9pbnQueCgpIDwgcnVuLT5yZWN0KCkueCgpICsgcnVuLT5sb2dpY2FsV2lkdGgoKSkg
ewogICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZiA9IHJ1bi0+cmVjdCgpLngoKSArIHJ1bi0+
bG9naWNhbFdpZHRoKCkgLyAyOwogICAgICAgICAgICAgICAgICAgICBhdXRvIGFmZmluaXR5ID0g
cG9pbnQueCgpIDwgaGFsZiA/IEFmZmluaXR5OjpEb3duc3RyZWFtIDogQWZmaW5pdHk6OlVwc3Ry
ZWFtOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVmlzaWJsZVBvc2l0aW9uKHJ1
bi0+b2Zmc2V0Rm9yUG9zaXRpb24ocG9pbnRMaW5lRGlyZWN0aW9uKSArIHJ1bi0+bG9jYWxTdGFy
dE9mZnNldCgpLCBhZmZpbml0eSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVW
aXNpYmxlUG9zaXRpb24ocnVuLT5vZmZzZXRGb3JQb3NpdGlvbihwb2ludExpbmVEaXJlY3Rpb24p
ICsgcnVuLT5zdGFydCgpLCBhZmZpbml0eSk7CiAgICAgICAgICAgICAgICAgfQogI2VuZGlmCiAg
ICAgICAgICAgICAgICAgaWYgKGxpbmVEaXJlY3Rpb25Qb2ludEZpdHNJbkJveChwb2ludExpbmVE
aXJlY3Rpb24sIHJ1biwgc2hvdWxkQWZmaW5pdHlCZURvd25zdHJlYW0pKQpAQCAtNjI5LDcgKzYy
OSw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0
IExheW91dFBvaW50JiBwb2ludCwgY29uc3QgUmVuCiAgICAgaWYgKGxhc3RSdW4pIHsKICAgICAg
ICAgU2hvdWxkQWZmaW5pdHlCZURvd25zdHJlYW0gc2hvdWxkQWZmaW5pdHlCZURvd25zdHJlYW07
CiAgICAgICAgIGxpbmVEaXJlY3Rpb25Qb2ludEZpdHNJbkJveChwb2ludExpbmVEaXJlY3Rpb24s
IGxhc3RSdW4sIHNob3VsZEFmZmluaXR5QmVEb3duc3RyZWFtKTsKLSAgICAgICAgcmV0dXJuIGNy
ZWF0ZVZpc2libGVQb3NpdGlvbkFmdGVyQWRqdXN0aW5nT2Zmc2V0Rm9yQmlEaShsYXN0UnVuLCBs
YXN0UnVuLT5vZmZzZXRGb3JQb3NpdGlvbihwb2ludExpbmVEaXJlY3Rpb24pICsgbGFzdFJ1bi0+
bG9jYWxTdGFydE9mZnNldCgpLCBzaG91bGRBZmZpbml0eUJlRG93bnN0cmVhbSk7CisgICAgICAg
IHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRpb25BZnRlckFkanVzdGluZ09mZnNldEZvckJpRGko
bGFzdFJ1biwgbGFzdFJ1bi0+b2Zmc2V0Rm9yUG9zaXRpb24ocG9pbnRMaW5lRGlyZWN0aW9uKSAr
IGxhc3RSdW4tPnN0YXJ0KCksIHNob3VsZEFmZmluaXR5QmVEb3duc3RyZWFtKTsKICAgICB9CiAg
ICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3NpdGlvbigwLCBBZmZpbml0eTo6RG93bnN0cmVhbSk7
CiB9CkBAIC0xNjE1LDkgKzE2MTUsOSBAQCBpbnQgUmVuZGVyVGV4dDo6Y2FyZXRNaW5PZmZzZXQo
KSBjb25zdAogICAgIGlmICghZmlyc3QpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaW50IG1p
bk9mZnNldCA9IGZpcnN0LT5sb2NhbFN0YXJ0T2Zmc2V0KCk7CisgICAgaW50IG1pbk9mZnNldCA9
IGZpcnN0LT5zdGFydCgpOwogICAgIGZvciAoYXV0byBib3ggPSBmaXJzdDsgKytib3g7KQotICAg
ICAgICBtaW5PZmZzZXQgPSBzdGQ6Om1pbjxpbnQ+KG1pbk9mZnNldCwgYm94LT5sb2NhbFN0YXJ0
T2Zmc2V0KCkpOworICAgICAgICBtaW5PZmZzZXQgPSBzdGQ6Om1pbjxpbnQ+KG1pbk9mZnNldCwg
Ym94LT5zdGFydCgpKTsKIAogICAgIHJldHVybiBtaW5PZmZzZXQ7CiB9CkBAIC0xNjI4LDkgKzE2
MjgsOSBAQCBpbnQgUmVuZGVyVGV4dDo6Y2FyZXRNYXhPZmZzZXQoKSBjb25zdAogICAgIGlmICgh
Zmlyc3QpCiAgICAgICAgIHJldHVybiB0ZXh0KCkubGVuZ3RoKCk7CiAKLSAgICBpbnQgbWF4T2Zm
c2V0ID0gZmlyc3QtPmxvY2FsRW5kT2Zmc2V0KCk7CisgICAgaW50IG1heE9mZnNldCA9IGZpcnN0
LT5lbmQoKTsKICAgICBmb3IgKGF1dG8gYm94ID0gZmlyc3Q7ICsrYm94OykKLSAgICAgICAgbWF4
T2Zmc2V0ID0gc3RkOjptYXg8aW50PihtYXhPZmZzZXQsIGJveC0+bG9jYWxFbmRPZmZzZXQoKSk7
CisgICAgICAgIG1heE9mZnNldCA9IHN0ZDo6bWF4PGludD4obWF4T2Zmc2V0LCBib3gtPmVuZCgp
KTsKIAogICAgIHJldHVybiBtYXhPZmZzZXQ7CiB9CkBAIC0xNjM5LDcgKzE2MzksNyBAQCB1bnNp
Z25lZCBSZW5kZXJUZXh0Ojpjb3VudFJlbmRlcmVkQ2hhcmFjdGVyT2Zmc2V0c1VudGlsKHVuc2ln
bmVkIG9mZnNldCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwogICAgIGZvciAo
YXV0byYgcnVuIDogTGF5b3V0SW50ZWdyYXRpb246OnRleHRSdW5zRm9yKCp0aGlzKSkgewotICAg
ICAgICBhdXRvIHN0YXJ0ID0gcnVuLmxvY2FsU3RhcnRPZmZzZXQoKTsKKyAgICAgICAgYXV0byBz
dGFydCA9IHJ1bi5zdGFydCgpOwogICAgICAgICBhdXRvIGxlbmd0aCA9IHJ1bi5sZW5ndGgoKTsK
ICAgICAgICAgaWYgKG9mZnNldCA8IHN0YXJ0KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
QEAgLTE2NTYsMTAgKzE2NTYsMTAgQEAgZW51bSBjbGFzcyBPZmZzZXRUeXBlIHsgQ2hhcmFjdGVy
LCBDYXJldCB9Owogc3RhdGljIGJvb2wgY29udGFpbnNPZmZzZXQoY29uc3QgUmVuZGVyVGV4dCYg
dGV4dCwgdW5zaWduZWQgb2Zmc2V0LCBPZmZzZXRUeXBlIHR5cGUpCiB7CiAgICAgZm9yIChhdXRv
IGJveCA9IExheW91dEludGVncmF0aW9uOjpmaXJzdFRleHRSdW5JblRleHRPcmRlckZvcih0ZXh0
KTsgYm94OyBib3gudHJhdmVyc2VOZXh0VGV4dFJ1bkluVGV4dE9yZGVyKCkpIHsKLSAgICAgICAg
YXV0byBzdGFydCA9IGJveC0+bG9jYWxTdGFydE9mZnNldCgpOworICAgICAgICBhdXRvIHN0YXJ0
ID0gYm94LT5zdGFydCgpOwogICAgICAgICBpZiAob2Zmc2V0IDwgc3RhcnQpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHVuc2lnbmVkIGVuZCA9IGJveC0+bG9jYWxFbmRPZmZz
ZXQoKTsKKyAgICAgICAgdW5zaWduZWQgZW5kID0gYm94LT5lbmQoKTsKICAgICAgICAgaWYgKG9m
ZnNldCA+PSBzdGFydCAmJiBvZmZzZXQgPD0gZW5kKSB7CiAgICAgICAgICAgICBpZiAob2Zmc2V0
ID09IGVuZCAmJiAodHlwZSA9PSBPZmZzZXRUeXBlOjpDaGFyYWN0ZXIgfHwgYm94LT5pc0xpbmVC
cmVhaygpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
</data>
<flag name="review"
          id="429137"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412662</attachid>
            <date>2020-10-29 09:43:34 -0700</date>
            <delta_ts>2020-10-29 10:21:15 -0700</delta_ts>
            <desc>patch</desc>
            <filename>startend-rename-2.patch</filename>
            <type>text/plain</type>
            <size>15994</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NTNkM2U5MzcwY2YuLjIyNTM3M2M4OGZlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ3IEBACisyMDIwLTEwLTI5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuYW1lIHRleHQgcnVuIGxvY2FsU3Rh
cnQvRW5kT2Zmc2V0IHRvIHN0YXJ0L2VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWmFsYW4gQnVq
dGFzLgorCisgICAgICAgIFRoZXJlIGlzIG5vIGRhbmdlciBvZiBjb25mdXNpb24gYW5kIHRoZXNl
IGFyZSBjYWxsZWQganVzdCBzdGFydC9lbmQgZWxzZXdoZXJlLgorCisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjp1cHN0cmVhbSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6ZG93bnN0cmVhbSBjb25zdCk6CisgICAgICAg
ICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEl0ZXJh
dG9yOjpoYW5kbGVUZXh0UnVuKToKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVVbml0cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzdGFydFBvc2l0aW9uRm9yTGluZSk6CisgICAgICAgIChXZWJD
b3JlOjplbmRQb3NpdGlvbkZvckxpbmUpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6UGF0aFRleHRSdW46OnN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bjo6ZW5kIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bjo6bG9jYWxTdGFydE9mZnNldCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0
aFRleHRSdW46OmxvY2FsRW5kT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvckxlZ2FjeVBh
dGg6OnN0YXJ0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpS
dW5JdGVyYXRvckxlZ2FjeVBhdGg6OmVuZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3JMZWdhY3lQYXRoOjpsb2NhbFN0YXJ0T2Zmc2V0IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW5J
dGVyYXRvckxlZ2FjeVBhdGg6OmxvY2FsRW5kT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVy
blBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRv
ck1vZGVyblBhdGg6Om1pbmltdW1DYXJldE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3JNb2Rlcm5QYXRoOjptYXhpbXVtQ2FyZXRP
ZmZzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0
ZXJhdG9yTW9kZXJuUGF0aDo6c3RhcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yTW9kZXJuUGF0aDo6ZW5kIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvck1vZGVyblBhdGg6OmxvY2Fs
U3RhcnRPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OlJ1bkl0ZXJhdG9yTW9kZXJuUGF0aDo6bG9jYWxFbmRPZmZzZXQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6cG9zaXRpb25Gb3JSdW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVZpc2libGVQb3NpdGlvbkFmdGVyQWRq
dXN0aW5nT2Zmc2V0Rm9yQmlEaSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpwb3Np
dGlvbkZvclBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNhcmV0TWluT2Zm
c2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNhcmV0TWF4T2Zmc2V0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmNvdW50UmVuZGVyZWRDaGFy
YWN0ZXJPZmZzZXRzVW50aWwgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnNPZmZz
ZXQpOgorCiAyMDIwLTEwLTI5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuYW1lIHRvcC9ib3R0b21XaXRoTGVhZGluZyB0
byBsaW5lQm94VG9wL0JvdHRvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggZDEzZWRjMTI0
NzBiLi5kZjk5M2JlN2IzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtNzUxLDEzICs3
NTEsMTMgQEAgUG9zaXRpb24gUG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3Nz
aW5nUnVsZSBydWxlKSBjb25zdAogCiAgICAgICAgICAgICB1bnNpZ25lZCB0ZXh0T2Zmc2V0ID0g
Y3VycmVudFBvc2l0aW9uLm9mZnNldEluTGVhZk5vZGUoKTsKICAgICAgICAgICAgIGZvciAoYXV0
byBydW4gPSBmaXJzdFRleHRSdW47IHJ1bjsgcnVuLnRyYXZlcnNlTmV4dFRleHRSdW5JblRleHRP
cmRlcigpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPD0gcnVuLT5sb2NhbEVu
ZE9mZnNldCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0ID4gcnVuLT5s
b2NhbFN0YXJ0T2Zmc2V0KCkpCisgICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPD0gcnVu
LT5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA+IHJ1bi0+c3Rh
cnQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247CiAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0ID09IHJ1bi0+bG9jYWxFbmRPZmZzZXQoKSArIDEgJiYg
cnVuLT5pc0xhc3RUZXh0UnVuT25MaW5lKCkgJiYgIXJ1bi0+aXNMYXN0VGV4dFJ1bigpKQorICAg
ICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0ID09IHJ1bi0+ZW5kKCkgKyAxICYmIHJ1bi0+aXNM
YXN0VGV4dFJ1bk9uTGluZSgpICYmICFydW4tPmlzTGFzdFRleHRSdW4oKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtODU0LDE2ICs4NTQsMTYgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRp
dGluZ0JvdW5kYXJ5Q3Jvc3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAKICAgICAgICAgICAgIHVuc2ln
bmVkIHRleHRPZmZzZXQgPSBjdXJyZW50UG9zaXRpb24ub2Zmc2V0SW5MZWFmTm9kZSgpOwogICAg
ICAgICAgICAgZm9yIChhdXRvIHJ1biA9IGZpcnN0VGV4dFJ1bjsgcnVuOyBydW4udHJhdmVyc2VO
ZXh0VGV4dFJ1bkluVGV4dE9yZGVyKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJ1bi0+bGVu
Z3RoKCkgJiYgdGV4dE9mZnNldCA9PSBydW4tPmxvY2FsU3RhcnRPZmZzZXQoKSkKKyAgICAgICAg
ICAgICAgICBpZiAoIXJ1bi0+bGVuZ3RoKCkgJiYgdGV4dE9mZnNldCA9PSBydW4tPnN0YXJ0KCkp
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247CiAKLSAgICAgICAg
ICAgICAgICBpZiAodGV4dE9mZnNldCA8IHJ1bi0+bG9jYWxFbmRPZmZzZXQoKSkgewotICAgICAg
ICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA+PSBydW4tPmxvY2FsU3RhcnRPZmZzZXQoKSkK
KyAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA8IHJ1bi0+ZW5kKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPj0gcnVuLT5zdGFydCgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKHRleHRP
ZmZzZXQgPT0gcnVuLT5sb2NhbEVuZE9mZnNldCgpICYmIHJ1bi0+aXNMYXN0VGV4dFJ1bk9uTGlu
ZSgpICYmICFydW4tPmlzTGFzdFRleHRSdW4oKSkKKyAgICAgICAgICAgICAgICBpZiAodGV4dE9m
ZnNldCA9PSBydW4tPmVuZCgpICYmIHJ1bi0+aXNMYXN0VGV4dFJ1bk9uTGluZSgpICYmICFydW4t
PmlzTGFzdFRleHRSdW4oKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3Np
dGlvbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0
SXRlcmF0b3IuY3BwCmluZGV4IDI4ZWRjZTRmYmFkMy4uMTAxZDRkY2IwZjRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBU
ZXh0SXRlcmF0b3I6OmhhbmRsZVRleHRSdW4oKQogICAgIHVuc2lnbmVkIHN0YXJ0ID0gbV9vZmZz
ZXQ7CiAgICAgdW5zaWduZWQgZW5kID0gKCZ0ZXh0Tm9kZSA9PSBtX2VuZENvbnRhaW5lcikgPyBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obV9lbmRPZmZzZXQpIDogVUlOVF9NQVg7CiAgICAgd2hpbGUg
KG1fdGV4dFJ1bikgewotICAgICAgICB1bnNpZ25lZCB0ZXh0UnVuU3RhcnQgPSBtX3RleHRSdW4t
PmxvY2FsU3RhcnRPZmZzZXQoKTsKKyAgICAgICAgdW5zaWduZWQgdGV4dFJ1blN0YXJ0ID0gbV90
ZXh0UnVuLT5zdGFydCgpOwogICAgICAgICB1bnNpZ25lZCBydW5TdGFydCA9IHN0ZDo6bWF4KHRl
eHRSdW5TdGFydCwgc3RhcnQpOwogCiAgICAgICAgIC8vIENoZWNrIGZvciBjb2xsYXBzZWQgc3Bh
Y2UgYXQgdGhlIHN0YXJ0IG9mIHRoaXMgcnVuLgpAQCAtNjY2LDcgKzY2Niw3IEBAIHZvaWQgVGV4
dEl0ZXJhdG9yOjpoYW5kbGVUZXh0UnVuKCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgICAgIC8vIEFkdmFuY2UgYW5kIHJldHVybgotICAgICAgICAgICAgdW5zaWduZWQgbmV4
dFJ1blN0YXJ0ID0gbmV4dFRleHRSdW4gPyBuZXh0VGV4dFJ1bi0+bG9jYWxTdGFydE9mZnNldCgp
IDogcmVuZGVyZXJUZXh0Lmxlbmd0aCgpOworICAgICAgICAgICAgdW5zaWduZWQgbmV4dFJ1blN0
YXJ0ID0gbmV4dFRleHRSdW4gPyBuZXh0VGV4dFJ1bi0+c3RhcnQoKSA6IHJlbmRlcmVyVGV4dC5s
ZW5ndGgoKTsKICAgICAgICAgICAgIGlmIChuZXh0UnVuU3RhcnQgPiBydW5FbmQpCiAgICAgICAg
ICAgICAgICAgbV9sYXN0VGV4dE5vZGVFbmRlZFdpdGhDb2xsYXBzZWRTcGFjZSA9IHRydWU7IC8v
IGNvbGxhcHNlZCBzcGFjZSBiZXR3ZWVuIHJ1bnMgb3IgYXQgdGhlIGVuZAogICAgICAgICAgICAg
bV90ZXh0UnVuID0gbmV4dFRleHRSdW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVVbml0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0
cy5jcHAKaW5kZXggNjY1MWVjMzUwNjhmLi5jMDJiYjMxMWIxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Zpc2libGVVbml0cy5jcHAKQEAgLTgxMSw3ICs4MTEsNyBAQCBzdGF0aWMgVmlzaWJs
ZVBvc2l0aW9uIHN0YXJ0UG9zaXRpb25Gb3JMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywg
TGluZUVuZHBvaQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGlzPFRleHQ+KCpzdGFy
dE5vZGUpID8gUG9zaXRpb24oZG93bmNhc3Q8VGV4dD4oc3RhcnROb2RlKSwgZG93bmNhc3Q8TGF5
b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVuPigqc3RhcnRSdW4pLmxvY2FsU3RhcnRPZmZzZXQo
KSkKKyAgICByZXR1cm4gaXM8VGV4dD4oKnN0YXJ0Tm9kZSkgPyBQb3NpdGlvbihkb3duY2FzdDxU
ZXh0PihzdGFydE5vZGUpLCBkb3duY2FzdDxMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFRleHRSdW4+
KCpzdGFydFJ1bikuc3RhcnQoKSkKICAgICAgICAgOiBwb3NpdGlvbkJlZm9yZU5vZGUoc3RhcnRO
b2RlKTsKIH0KIApAQCAtODkxLDcgKzg5MSw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gZW5k
UG9zaXRpb25Gb3JMaW5lKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgTGluZUVuZHBvaW50CiAg
ICAgICAgIHBvcyA9IHBvc2l0aW9uQmVmb3JlTm9kZShlbmROb2RlKTsKICAgICBlbHNlIGlmIChp
czxMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFRleHRSdW4+KCplbmRSdW4pICYmIGlzPFRleHQ+KCpl
bmROb2RlKSkgewogICAgICAgICBhdXRvJiBlbmRUZXh0UnVuID0gZG93bmNhc3Q8TGF5b3V0SW50
ZWdyYXRpb246OlBhdGhUZXh0UnVuPigqZW5kUnVuKTsKLSAgICAgICAgaW50IGVuZE9mZnNldCA9
IGVuZFRleHRSdW4ubG9jYWxTdGFydE9mZnNldCgpOworICAgICAgICBpbnQgZW5kT2Zmc2V0ID0g
ZW5kVGV4dFJ1bi5zdGFydCgpOwogICAgICAgICBpZiAoIWVuZFRleHRSdW4uaXNMaW5lQnJlYWso
KSkKICAgICAgICAgICAgIGVuZE9mZnNldCArPSBlbmRUZXh0UnVuLmxlbmd0aCgpOwogICAgICAg
ICBwb3MgPSBQb3NpdGlvbihkb3duY2FzdDxUZXh0PihlbmROb2RlKSwgZW5kT2Zmc2V0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCmluZGV4IGY2NWZjOTQxM2RkYS4uMDNkYThjZWQw
MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKQEAgLTEwMyw5ICsxMDMsOCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNIeXBoZW4oKSBjb25zdDsKICAgICBTdHJpbmdWaWV3IHRl
eHQoKSBjb25zdDsKIAotICAgIC8vIFRoZXNlIG9mZnNldHMgYXJlIHJlbGF0aXZlIHRvIHRoZSB0
ZXh0IHJlbmRlcmVyIChub3QgZmxvdykuCi0gICAgdW5zaWduZWQgbG9jYWxTdGFydE9mZnNldCgp
IGNvbnN0OwotICAgIHVuc2lnbmVkIGxvY2FsRW5kT2Zmc2V0KCkgY29uc3Q7CisgICAgdW5zaWdu
ZWQgc3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBlbmQoKSBjb25zdDsKICAgICB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdDsKIAogICAgIHVuc2lnbmVkIG9mZnNldEZvclBvc2l0aW9uKGZsb2F0
IHgpIGNvbnN0OwpAQCAtMjk4LDE3ICsyOTcsMTcgQEAgaW5saW5lIFN0cmluZ1ZpZXcgUGF0aFRl
eHRSdW46OnRleHQoKSBjb25zdAogICAgIH0pOwogfQogCi1pbmxpbmUgdW5zaWduZWQgUGF0aFRl
eHRSdW46OmxvY2FsU3RhcnRPZmZzZXQoKSBjb25zdAoraW5saW5lIHVuc2lnbmVkIFBhdGhUZXh0
UnVuOjpzdGFydCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFy
aWFudCwgW10oYXV0byYgcGF0aCkgewotICAgICAgICByZXR1cm4gcGF0aC5sb2NhbFN0YXJ0T2Zm
c2V0KCk7CisgICAgICAgIHJldHVybiBwYXRoLnN0YXJ0KCk7CiAgICAgfSk7CiB9CiAKLWlubGlu
ZSB1bnNpZ25lZCBQYXRoVGV4dFJ1bjo6bG9jYWxFbmRPZmZzZXQoKSBjb25zdAoraW5saW5lIHVu
c2lnbmVkIFBhdGhUZXh0UnVuOjplbmQoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIHBhdGgu
bG9jYWxFbmRPZmZzZXQoKTsKKyAgICAgICAgcmV0dXJuIHBhdGguZW5kKCk7CiAgICAgfSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgKaW5k
ZXggYjFmNTJkNGI3OTU5Li40NjZhYmFkMDkxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0
aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCkBAIC01NSw4ICs1NSw4IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaGFzSHlwaGVuKCkgY29uc3QgeyByZXR1cm4gaW5saW5lVGV4dEJveCgpLT5oYXNI
eXBoZW4oKTsgfQogICAgIFN0cmluZ1ZpZXcgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZ1Zp
ZXcoaW5saW5lVGV4dEJveCgpLT5yZW5kZXJlcigpLnRleHQoKSkuc3Vic3RyaW5nKGlubGluZVRl
eHRCb3goKS0+c3RhcnQoKSwgaW5saW5lVGV4dEJveCgpLT5sZW4oKSk7IH0KLSAgICB1bnNpZ25l
ZCBsb2NhbFN0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gaW5saW5lVGV4dEJveCgpLT5zdGFy
dCgpOyB9Ci0gICAgdW5zaWduZWQgbG9jYWxFbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBpbmxp
bmVUZXh0Qm94KCktPmVuZCgpOyB9CisgICAgdW5zaWduZWQgc3RhcnQoKSBjb25zdCB7IHJldHVy
biBpbmxpbmVUZXh0Qm94KCktPnN0YXJ0KCk7IH0KKyAgICB1bnNpZ25lZCBlbmQoKSBjb25zdCB7
IHJldHVybiBpbmxpbmVUZXh0Qm94KCktPmVuZCgpOyB9CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gaW5saW5lVGV4dEJveCgpLT5sZW4oKTsgfQogCiAgICAgaW5saW5lIHVu
c2lnbmVkIG9mZnNldEZvclBvc2l0aW9uKGZsb2F0IHgpIGNvbnN0IHsgcmV0dXJuIGlubGluZVRl
eHRCb3goKS0+b2Zmc2V0Rm9yUG9zaXRpb24oeCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJu
UGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKaW5kZXggYTdjMjY0ODUzNzJmLi5kZTQyNWU2ZTcw
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5o
CkBAIC01NSwxNSArNTUsMTUgQEAgcHVibGljOgogICAgIGJvb2wgZGlyT3ZlcnJpZGUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVy
biBydW4oKS5pc0xpbmVCcmVhaygpOyB9CiAKLSAgICB1bnNpZ25lZCBtaW5pbXVtQ2FyZXRPZmZz
ZXQoKSBjb25zdCB7IHJldHVybiBpc1RleHQoKSA/IGxvY2FsU3RhcnRPZmZzZXQoKSA6IDA7IH0K
LSAgICB1bnNpZ25lZCBtYXhpbXVtQ2FyZXRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBpc1RleHQo
KSA/IGxvY2FsRW5kT2Zmc2V0KCkgOiAxOyB9CisgICAgdW5zaWduZWQgbWluaW11bUNhcmV0T2Zm
c2V0KCkgY29uc3QgeyByZXR1cm4gaXNUZXh0KCkgPyBzdGFydCgpIDogMDsgfQorICAgIHVuc2ln
bmVkIG1heGltdW1DYXJldE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIGlzVGV4dCgpID8gZW5kKCkg
OiAxOyB9CiAKICAgICB1bnNpZ25lZCBjaGFyIGJpZGlMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KIAogICAgIGJvb2wgaGFzSHlwaGVuKCkgY29uc3QgeyByZXR1cm4gcnVuKCkudGV4dENvbnRl
bnQoKS0+bmVlZHNIeXBoZW4oKTsgfQogICAgIFN0cmluZ1ZpZXcgdGV4dCgpIGNvbnN0IHsgcmV0
dXJuIHJ1bigpLnRleHRDb250ZW50KCktPmNvbnRlbnQoKTsgfQotICAgIHVuc2lnbmVkIGxvY2Fs
U3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBydW4oKS50ZXh0Q29udGVudCgpLT5zdGFydCgp
OyB9Ci0gICAgdW5zaWduZWQgbG9jYWxFbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBydW4oKS50
ZXh0Q29udGVudCgpLT5lbmQoKTsgfQorICAgIHVuc2lnbmVkIHN0YXJ0KCkgY29uc3QgeyByZXR1
cm4gcnVuKCkudGV4dENvbnRlbnQoKS0+c3RhcnQoKTsgfQorICAgIHVuc2lnbmVkIGVuZCgpIGNv
bnN0IHsgcmV0dXJuIHJ1bigpLnRleHRDb250ZW50KCktPmVuZCgpOyB9CiAgICAgdW5zaWduZWQg
bGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcnVuKCkudGV4dENvbnRlbnQoKS0+bGVuZ3RoKCk7IH0K
IAogICAgIGlubGluZSB1bnNpZ25lZCBvZmZzZXRGb3JQb3NpdGlvbihmbG9hdCB4KSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA2MzA0
Mzk3OGE0NGIuLjcxNmVjZGNkNzA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAKQEAgLTMzMTgsNyArMzMxOCw3IEBAIHN0YXRpYyBQb3NpdGlvbiBw
b3NpdGlvbkZvclJ1bihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3csIExheW91dEludGVncmF0
aW9uOjpSCiAgICAgICAgIHJldHVybiBtYWtlRGVwcmVjYXRlZExlZ2FjeVBvc2l0aW9uKHJ1bi0+
cmVuZGVyZXIoKS5ub25Qc2V1ZG9Ob2RlKCksIHN0YXJ0ID8gcnVuLT5yZW5kZXJlcigpLmNhcmV0
TWluT2Zmc2V0KCkgOiBydW4tPnJlbmRlcmVyKCkuY2FyZXRNYXhPZmZzZXQoKSk7CiAKICAgICBh
dXRvJiB0ZXh0UnVuID0gZG93bmNhc3Q8TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRv
cj4ocnVuKTsKLSAgICByZXR1cm4gbWFrZURlcHJlY2F0ZWRMZWdhY3lQb3NpdGlvbih0ZXh0UnVu
LT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyB0ZXh0UnVuLT5sb2NhbFN0YXJ0
T2Zmc2V0KCkgOiB0ZXh0UnVuLT5sb2NhbEVuZE9mZnNldCgpKTsKKyAgICByZXR1cm4gbWFrZURl
cHJlY2F0ZWRMZWdhY3lQb3NpdGlvbih0ZXh0UnVuLT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUo
KSwgc3RhcnQgPyB0ZXh0UnVuLT5zdGFydCgpIDogdGV4dFJ1bi0+ZW5kKCkpOwogfQogCiBSZW5k
ZXJUZXh0KiBSZW5kZXJCbG9ja0Zsb3c6OmZpbmRDbG9zZXN0VGV4dEF0QWJzb2x1dGVQb2ludChj
b25zdCBGbG9hdFBvaW50JiBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcAppbmRleCA2OWJlZThhOTBmZDUuLjQzNmNjMmQxM2ZkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtNTE1LDcgKzUxNSw3IEBAIHN0YXRpYyBWaXNpYmxl
UG9zaXRpb24gY3JlYXRlVmlzaWJsZVBvc2l0aW9uQWZ0ZXJBZGp1c3RpbmdPZmZzZXRGb3JCaURp
KGNvbnN0IExhCiAgICAgQVNTRVJUKG9mZnNldCA+PSAwKTsKIAogICAgIGlmIChvZmZzZXQgJiYg
b2Zmc2V0IDwgcnVuLT5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3Np
dGlvbkZvckJveChydW4sIHJ1bi0+bG9jYWxTdGFydE9mZnNldCgpICsgb2Zmc2V0LCBzaG91bGRB
ZmZpbml0eUJlRG93bnN0cmVhbSk7CisgICAgICAgIHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRp
b25Gb3JCb3gocnVuLCBydW4tPnN0YXJ0KCkgKyBvZmZzZXQsIHNob3VsZEFmZmluaXR5QmVEb3du
c3RyZWFtKTsKIAogICAgIGJvb2wgcG9zaXRpb25Jc0F0U3RhcnRPZkJveCA9ICFvZmZzZXQ7CiAg
ICAgaWYgKHBvc2l0aW9uSXNBdFN0YXJ0T2ZCb3ggPT0gcnVuLT5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCkpIHsKQEAgLTYxNiw3ICs2MTYsNyBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyVGV4dDo6
cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGNvbnN0IFJlbgogICAg
ICAgICAgICAgICAgIGlmIChwb2ludExpbmVEaXJlY3Rpb24gIT0gcnVuLT5sb2dpY2FsTGVmdCgp
ICYmIHBvaW50LngoKSA8IHJ1bi0+cmVjdCgpLngoKSArIHJ1bi0+bG9naWNhbFdpZHRoKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgaW50IGhhbGYgPSBydW4tPnJlY3QoKS54KCkgKyBydW4tPmxv
Z2ljYWxXaWR0aCgpIC8gMjsKICAgICAgICAgICAgICAgICAgICAgYXV0byBhZmZpbml0eSA9IHBv
aW50LngoKSA8IGhhbGYgPyBBZmZpbml0eTo6RG93bnN0cmVhbSA6IEFmZmluaXR5OjpVcHN0cmVh
bTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3NpdGlvbihydW4t
Pm9mZnNldEZvclBvc2l0aW9uKHBvaW50TGluZURpcmVjdGlvbikgKyBydW4tPmxvY2FsU3RhcnRP
ZmZzZXQoKSwgYWZmaW5pdHkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlVmlz
aWJsZVBvc2l0aW9uKHJ1bi0+b2Zmc2V0Rm9yUG9zaXRpb24ocG9pbnRMaW5lRGlyZWN0aW9uKSAr
IHJ1bi0+c3RhcnQoKSwgYWZmaW5pdHkpOwogICAgICAgICAgICAgICAgIH0KICNlbmRpZgogICAg
ICAgICAgICAgICAgIGlmIChsaW5lRGlyZWN0aW9uUG9pbnRGaXRzSW5Cb3gocG9pbnRMaW5lRGly
ZWN0aW9uLCBydW4sIHNob3VsZEFmZmluaXR5QmVEb3duc3RyZWFtKSkKQEAgLTYyOSw3ICs2Mjks
NyBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBM
YXlvdXRQb2ludCYgcG9pbnQsIGNvbnN0IFJlbgogICAgIGlmIChsYXN0UnVuKSB7CiAgICAgICAg
IFNob3VsZEFmZmluaXR5QmVEb3duc3RyZWFtIHNob3VsZEFmZmluaXR5QmVEb3duc3RyZWFtOwog
ICAgICAgICBsaW5lRGlyZWN0aW9uUG9pbnRGaXRzSW5Cb3gocG9pbnRMaW5lRGlyZWN0aW9uLCBs
YXN0UnVuLCBzaG91bGRBZmZpbml0eUJlRG93bnN0cmVhbSk7Ci0gICAgICAgIHJldHVybiBjcmVh
dGVWaXNpYmxlUG9zaXRpb25BZnRlckFkanVzdGluZ09mZnNldEZvckJpRGkobGFzdFJ1biwgbGFz
dFJ1bi0+b2Zmc2V0Rm9yUG9zaXRpb24ocG9pbnRMaW5lRGlyZWN0aW9uKSArIGxhc3RSdW4tPmxv
Y2FsU3RhcnRPZmZzZXQoKSwgc2hvdWxkQWZmaW5pdHlCZURvd25zdHJlYW0pOworICAgICAgICBy
ZXR1cm4gY3JlYXRlVmlzaWJsZVBvc2l0aW9uQWZ0ZXJBZGp1c3RpbmdPZmZzZXRGb3JCaURpKGxh
c3RSdW4sIGxhc3RSdW4tPm9mZnNldEZvclBvc2l0aW9uKHBvaW50TGluZURpcmVjdGlvbikgKyBs
YXN0UnVuLT5zdGFydCgpLCBzaG91bGRBZmZpbml0eUJlRG93bnN0cmVhbSk7CiAgICAgfQogICAg
IHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRpb24oMCwgQWZmaW5pdHk6OkRvd25zdHJlYW0pOwog
fQpAQCAtMTYxNSw5ICsxNjE1LDkgQEAgaW50IFJlbmRlclRleHQ6OmNhcmV0TWluT2Zmc2V0KCkg
Y29uc3QKICAgICBpZiAoIWZpcnN0KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGludCBtaW5P
ZmZzZXQgPSBmaXJzdC0+bG9jYWxTdGFydE9mZnNldCgpOworICAgIGludCBtaW5PZmZzZXQgPSBm
aXJzdC0+c3RhcnQoKTsKICAgICBmb3IgKGF1dG8gYm94ID0gZmlyc3Q7ICsrYm94OykKLSAgICAg
ICAgbWluT2Zmc2V0ID0gc3RkOjptaW48aW50PihtaW5PZmZzZXQsIGJveC0+bG9jYWxTdGFydE9m
ZnNldCgpKTsKKyAgICAgICAgbWluT2Zmc2V0ID0gc3RkOjptaW48aW50PihtaW5PZmZzZXQsIGJv
eC0+c3RhcnQoKSk7CiAKICAgICByZXR1cm4gbWluT2Zmc2V0OwogfQpAQCAtMTYyOCw5ICsxNjI4
LDkgQEAgaW50IFJlbmRlclRleHQ6OmNhcmV0TWF4T2Zmc2V0KCkgY29uc3QKICAgICBpZiAoIWZp
cnN0KQogICAgICAgICByZXR1cm4gdGV4dCgpLmxlbmd0aCgpOwogCi0gICAgaW50IG1heE9mZnNl
dCA9IGZpcnN0LT5sb2NhbEVuZE9mZnNldCgpOworICAgIGludCBtYXhPZmZzZXQgPSBmaXJzdC0+
ZW5kKCk7CiAgICAgZm9yIChhdXRvIGJveCA9IGZpcnN0OyArK2JveDspCi0gICAgICAgIG1heE9m
ZnNldCA9IHN0ZDo6bWF4PGludD4obWF4T2Zmc2V0LCBib3gtPmxvY2FsRW5kT2Zmc2V0KCkpOwor
ICAgICAgICBtYXhPZmZzZXQgPSBzdGQ6Om1heDxpbnQ+KG1heE9mZnNldCwgYm94LT5lbmQoKSk7
CiAKICAgICByZXR1cm4gbWF4T2Zmc2V0OwogfQpAQCAtMTYzOSw3ICsxNjM5LDcgQEAgdW5zaWdu
ZWQgUmVuZGVyVGV4dDo6Y291bnRSZW5kZXJlZENoYXJhY3Rlck9mZnNldHNVbnRpbCh1bnNpZ25l
ZCBvZmZzZXQpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKICAgICBmb3IgKGF1
dG8mIHJ1biA6IExheW91dEludGVncmF0aW9uOjp0ZXh0UnVuc0ZvcigqdGhpcykpIHsKLSAgICAg
ICAgYXV0byBzdGFydCA9IHJ1bi5sb2NhbFN0YXJ0T2Zmc2V0KCk7CisgICAgICAgIGF1dG8gc3Rh
cnQgPSBydW4uc3RhcnQoKTsKICAgICAgICAgYXV0byBsZW5ndGggPSBydW4ubGVuZ3RoKCk7CiAg
ICAgICAgIGlmIChvZmZzZXQgPCBzdGFydCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBA
IC0xNjU2LDEwICsxNjU2LDEwIEBAIGVudW0gY2xhc3MgT2Zmc2V0VHlwZSB7IENoYXJhY3Rlciwg
Q2FyZXQgfTsKIHN0YXRpYyBib29sIGNvbnRhaW5zT2Zmc2V0KGNvbnN0IFJlbmRlclRleHQmIHRl
eHQsIHVuc2lnbmVkIG9mZnNldCwgT2Zmc2V0VHlwZSB0eXBlKQogewogICAgIGZvciAoYXV0byBi
b3ggPSBMYXlvdXRJbnRlZ3JhdGlvbjo6Zmlyc3RUZXh0UnVuSW5UZXh0T3JkZXJGb3IodGV4dCk7
IGJveDsgYm94LnRyYXZlcnNlTmV4dFRleHRSdW5JblRleHRPcmRlcigpKSB7Ci0gICAgICAgIGF1
dG8gc3RhcnQgPSBib3gtPmxvY2FsU3RhcnRPZmZzZXQoKTsKKyAgICAgICAgYXV0byBzdGFydCA9
IGJveC0+c3RhcnQoKTsKICAgICAgICAgaWYgKG9mZnNldCA8IHN0YXJ0KQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB1bnNpZ25lZCBlbmQgPSBib3gtPmxvY2FsRW5kT2Zmc2V0
KCk7CisgICAgICAgIHVuc2lnbmVkIGVuZCA9IGJveC0+ZW5kKCk7CiAgICAgICAgIGlmIChvZmZz
ZXQgPj0gc3RhcnQgJiYgb2Zmc2V0IDw9IGVuZCkgewogICAgICAgICAgICAgaWYgKG9mZnNldCA9
PSBlbmQgJiYgKHR5cGUgPT0gT2Zmc2V0VHlwZTo6Q2hhcmFjdGVyIHx8IGJveC0+aXNMaW5lQnJl
YWsoKSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>