<?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>201181</bug_id>
          
          <creation_ts>2019-08-27 08:05:40 -0700</creation_ts>
          <short_desc>InlineTextBox::end() should return first-past-end offset</short_desc>
          <delta_ts>2020-04-17 15:55:02 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201645</see_also>
          <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>
          
          <blocked>210677</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lantw44</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>1565339</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-08-27 08:05:40 -0700</bug_when>
    <thetext>It currently points to the last character, except for empty text boxes. This is awkward in itself and also inconsistent, as we use first-past-end offset everywhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565340</commentid>
    <comment_count>1</comment_count>
      <attachid>377340</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-08-27 08:11:47 -0700</bug_when>
    <thetext>Created attachment 377340
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565347</commentid>
    <comment_count>2</comment_count>
      <attachid>377341</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-08-27 08:36:01 -0700</bug_when>
    <thetext>Created attachment 377341
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565407</commentid>
    <comment_count>3</comment_count>
      <attachid>377341</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-08-27 11:11:11 -0700</bug_when>
    <thetext>Comment on attachment 377341
patch

I wonder what the reasoning was when it was introduced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565456</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-27 12:29:17 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 377341:

fullscreen/full-screen-request-removed-with-raf.html bug 201188 (author: jer.noble@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565458</commentid>
    <comment_count>5</comment_count>
      <attachid>377341</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-27 12:29:59 -0700</bug_when>
    <thetext>Comment on attachment 377341
patch

Clearing flags on attachment: 377341

Committed r249160: &lt;https://trac.webkit.org/changeset/249160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565459</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-27 12:30:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565463</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-27 12:32:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/54758922&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377340</attachid>
            <date>2019-08-27 08:11:47 -0700</date>
            <delta_ts>2019-08-27 08:36:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>endd.patch</filename>
            <type>text/plain</type>
            <size>13078</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZWJkYTcyMmQzYS4uYWJiMzk2MTI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wOC0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW5saW5lVGV4dEJveDo6ZW5kKCkgc2hvdWxkIHJldHVybiBmaXJzdC1wYXN0
LWVuZCBvZmZzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMTE4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEl0IGN1cnJlbnRseSBwb2ludHMgdG8gdGhlIGxhc3QgY2hhcmFjdGVyLCBleGNlcHQgZm9y
IGVtcHR5IHRleHQgYm94ZXMuCisgICAgICAgIFRoaXMgaXMgYXdrd2FyZCBpbiBpdHNlbGYgYW5k
IGFsc28gaW5jb25zaXN0ZW50LCBhcyB3ZSB1c2UgZmlyc3QtcGFzdC1lbmQgb2Zmc2V0IGV2ZXJ5
d2hlcmUgZWxzZS4KKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQb3NpdGlvbjo6ZG93bnN0cmVhbSBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgY2hlY2sg
Zm9yIHplcm8gbGVuZ3RoIGNhc2UgdG8gYXZvaWQgY2hhbmdpbmcgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Y2hlY2tGb3JNYXRjaGluZ1RleHRSdW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0
cHV0TWlzbWF0Y2hpbmdDb21wbGV4TGluZUluZm9ybWF0aW9uSWZOZWVkZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZs
b3dCb3g6OnBsYWNlQm94UmFuZ2VJbklubGluZURpcmVjdGlvbik6CisgICAgICAgICogcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y2FsY3VsYXRlRG9jdW1l
bnRNYXJrZXJCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6
Y29sbGVjdE1hcmtlZFRleHRzRm9yRG9jdW1lbnRNYXJrZXJzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50Q29tcG9zaXRpb25VbmRlcmxpbmVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50Q29tcG9zaXRpb25VbmRlcmxp
bmUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjplbmQgY29uc3QpOgorCisgICAgICAgIGVuZCA9IHN0
YXJ0ICsgbGVuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0OjpzZXRUZXh0V2l0aE9mZnNldCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxR
dWFkRm9yVGV4dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0TGluZUJveGVzOjph
YnNvbHV0ZVJlY3RzRm9yUmFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dExpbmVCb3hlczo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRMaW5lQm94ZXM6OmRpcnR5UmFuZ2UpOgorCisgICAgICAgIEhlcmUgdGhl
IGluY29taW5nICdlbmQnIHVzZWQgbGluZWJveCBzdHlsZSB0b28sIG1vdmUgdGhhdCB0byB0aGUg
bmV3IGRlZmluaXRpb24gdG9vLgorCiAyMDE5LTA4LTI0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbGF5b3V0IHN5c3RlbSBpbmRlcGVuZGVu
dCB0ZXh0IGJveCBpdGVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggOGIwNWJjODIz
ZWMuLjZkNTg0ZWRhZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTg3Myw3ICs4NzMs
MTAgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgICAgICB1bnNpZ25lZCB0ZXh0T2Zmc2V0ID0gY3Vy
cmVudFBvc2l0aW9uLm9mZnNldEluTGVhZk5vZGUoKTsKICAgICAgICAgICAgIGF1dG8gbGFzdFRl
eHRCb3ggPSB0ZXh0UmVuZGVyZXIubGFzdFRleHRCb3goKTsKICAgICAgICAgICAgIGZvciAoYXV0
byogYm94ID0gdGV4dFJlbmRlcmVyLmZpcnN0VGV4dEJveCgpOyBib3g7IGJveCA9IGJveC0+bmV4
dFRleHRCb3goKSkgewotICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0IDw9IGJveC0+ZW5k
KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJveC0+bGVuKCkgJiYgdGV4dE9mZnNldCA9PSBi
b3gtPnN0YXJ0KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247
CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA8IGJveC0+ZW5k
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPj0gYm94LT5zdGFydCgp
KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24u
Y3BwCmluZGV4IGNjZjQ2ZDg5MWI1Li4zMzIzYjEyYWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L1ZlcmlmaWNhdGlvbi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgYm9vbCBjaGVja0Zv
ck1hdGNoaW5nVGV4dFJ1bnMoY29uc3QgRGlzcGxheTo6UnVuJiBpbmxpbmVSdW4sIGNvbnN0IElu
bGluZQogICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNh
bFRvcCgpLCBpbmxpbmVSdW4ubG9naWNhbFRvcCgpKQogICAgICAgICAmJiBhcmVFc3NlbnRpYWxs
eUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJv
dHRvbSgpKQogICAgICAgICAmJiBpbmxpbmVUZXh0Qm94LnN0YXJ0KCkgPT0gaW5saW5lUnVuLnRl
eHRDb250ZXh0KCktPnN0YXJ0KCkKLSAgICAgICAgJiYgKGlubGluZVRleHRCb3guZW5kKCkgKyAx
KSA9PSBpbmxpbmVSdW4udGV4dENvbnRleHQoKS0+ZW5kKCk7CisgICAgICAgICYmIGlubGluZVRl
eHRCb3guZW5kKCkgPT0gaW5saW5lUnVuLnRleHRDb250ZXh0KCktPmVuZCgpOwogfQogCiBzdGF0
aWMgdm9pZCBjb2xsZWN0Rmxvd0JveFN1YnRyZWUoY29uc3QgSW5saW5lRmxvd0JveCYgZmxvd2Jv
eCwgVmVjdG9yPFdlYkNvcmU6OklubGluZUJveCo+JiBpbmxpbmVCb3hlcykKQEAgLTE4NCw3ICsx
ODQsNyBAQCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ0NvbXBsZXhMaW5lSW5mb3JtYXRp
b25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0sCiAgICAgICAgICAgICBzdHJlYW0gPDwgIk1p
c21hdGNoaW5nOiBydW4iOwogCiAgICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveCkKLSAgICAg
ICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBpbmxpbmVUZXh0Qm94LT5zdGFydCgpIDw8ICIs
ICIgPDwgaW5saW5lVGV4dEJveC0+ZW5kKCkgKyAxIDw8ICIpIjsKKyAgICAgICAgICAgICAgICBz
dHJlYW0gPDwgIiAoIiA8PCBpbmxpbmVUZXh0Qm94LT5zdGFydCgpIDw8ICIsICIgPDwgaW5saW5l
VGV4dEJveC0+ZW5kKCkgPDwgIikiOwogICAgICAgICAgICAgc3RyZWFtIDw8ICIgKCIgPDwgaW5s
aW5lQm94LT5sb2dpY2FsTGVmdCgpIDw8ICIsICIgPDwgaW5saW5lQm94LT5sb2dpY2FsVG9wKCkg
PDwgIikgKCIgPDwgaW5saW5lQm94LT5sb2dpY2FsV2lkdGgoKSA8PCAieCIgPDwgaW5saW5lQm94
LT5sb2dpY2FsSGVpZ2h0KCkgPDwgIikiOwogCiAgICAgICAgICAgICBzdHJlYW0gPDwgIiBpbmxp
bmUgcnVuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRl
eCAyYTFiYzI4OWI0My4uOTZhMjQ5ZjQwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAKQEAgLTM5Miw3ICszOTIsNyBAQCBmbG9hdCBJbmxpbmVGbG93Qm94
OjpwbGFjZUJveFJhbmdlSW5JbmxpbmVEaXJlY3Rpb24oSW5saW5lQm94KiBmaXJzdENoaWxkLCBJ
bmxpbgogICAgICAgICAgICAgaWYgKHJlbmRlclRleHQudGV4dCgpLmxlbmd0aCgpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKG5lZWRzV29yZFNwYWNpbmcgJiYgaXNTcGFjZU9yTmV3bGluZShyZW5k
ZXJUZXh0LmNoYXJhY3RlckF0KHRleHRCb3guc3RhcnQoKSkpKQogICAgICAgICAgICAgICAgICAg
ICBsb2dpY2FsTGVmdCArPSB0ZXh0Qm94LmxpbmVTdHlsZSgpLmZvbnRDYXNjYWRlKCkud29yZFNw
YWNpbmcoKTsKLSAgICAgICAgICAgICAgICBuZWVkc1dvcmRTcGFjaW5nID0gIWlzU3BhY2VPck5l
d2xpbmUocmVuZGVyVGV4dC5jaGFyYWN0ZXJBdCh0ZXh0Qm94LmVuZCgpKSk7CisgICAgICAgICAg
ICAgICAgbmVlZHNXb3JkU3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJlbmRlclRleHQuY2hh
cmFjdGVyQXQodGV4dEJveC5lbmQoKSAtIDEpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHRleHRCb3guc2V0TG9naWNhbExlZnQobG9naWNhbExlZnQpOwogICAgICAgICAgICAgaWYgKGtu
b3duVG9IYXZlTm9PdmVyZmxvdygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwCmluZGV4IGRmZjhiMTEyMmRiLi45MGFlYWNmMjI5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQg
SW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCwKICAgICBWZWN0b3I8TWFya2VkVGV4dD4gbWFya2VkVGV4dHM7CiAg
ICAgaWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpTZWxlY3Rpb24pIHsKICAgICAg
ICAgLy8gVGhlIG1hcmtlZCB0ZXh0cyBmb3IgdGhlIGdhcHMgYmV0d2VlbiBkb2N1bWVudCBtYXJr
ZXJzIGFuZCBzZWxlY3Rpb24gYXJlIGltcGxpY2l0bHkgY3JlYXRlZCBieSBzdWJkaXZpZGluZyB0
aGUgZW50aXJlIGxpbmUuCi0gICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7IGNsYW1wZWRPZmZz
ZXQobV9zdGFydCksIGNsYW1wZWRPZmZzZXQoZW5kKCkgKyAxKSwgTWFya2VkVGV4dDo6VW5tYXJr
ZWQgfSk7CisgICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7IGNsYW1wZWRPZmZzZXQobV9zdGFy
dCksIGNsYW1wZWRPZmZzZXQoZW5kKCkpLCBNYXJrZWRUZXh0OjpVbm1hcmtlZCB9KTsKICAgICAg
ICAgaWYgKCFpc1ByaW50aW5nKSB7CiAgICAgICAgICAgICBtYXJrZWRUZXh0cy5hcHBlbmRWZWN0
b3IoY29sbGVjdE1hcmtlZFRleHRzRm9yRG9jdW1lbnRNYXJrZXJzKFRleHRQYWludFBoYXNlOjpG
b3JlZ3JvdW5kKSk7CiAKQEAgLTY5Nyw3ICs2OTcsNyBAQCBGbG9hdFJlY3QgSW5saW5lVGV4dEJv
eDo6Y2FsY3VsYXRlRG9jdW1lbnRNYXJrZXJCb3VuZHMoY29uc3QgTWFya2VkVGV4dCYgbWFya2Vk
VAogICAgIGF1dG8gaGVpZ2h0ID0gMC4xMzI0NyAqIGZvbnRTaXplOwogCiAgICAgLy8gQXZvaWQg
bWVhc3VyaW5nIHRoZSB0ZXh0IHdoZW4gdGhlIGVudGlyZSBsaW5lIGJveCBpcyBzZWxlY3RlZCBh
cyBhbiBvcHRpbWl6YXRpb24uCi0gICAgaWYgKG1hcmtlZFRleHQuc3RhcnRPZmZzZXQgfHwgbWFy
a2VkVGV4dC5lbmRPZmZzZXQgIT0gY2xhbXBlZE9mZnNldChlbmQoKSArIDEpKSB7CisgICAgaWYg
KG1hcmtlZFRleHQuc3RhcnRPZmZzZXQgfHwgbWFya2VkVGV4dC5lbmRPZmZzZXQgIT0gY2xhbXBl
ZE9mZnNldChlbmQoKSkpIHsKICAgICAgICAgVGV4dFJ1biBydW4gPSBjcmVhdGVUZXh0UnVuKCk7
CiAgICAgICAgIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdCA9IExheW91dFJlY3QoMCwgeSwgMCwg
aGVpZ2h0KTsKICAgICAgICAgbGluZUZvbnQoKS5hZGp1c3RTZWxlY3Rpb25SZWN0Rm9yVGV4dChy
dW4sIHNlbGVjdGlvblJlY3QsIG1hcmtlZFRleHQuc3RhcnRPZmZzZXQsIG1hcmtlZFRleHQuZW5k
T2Zmc2V0KTsKQEAgLTkzMiw3ICs5MzIsNyBAQCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4
dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9yRG9jdW1lbnRNYXJrZXJzKFRleHRQYWludAogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobWFya2VyLT5zdGFy
dE9mZnNldCgpID4gZW5kKCkpIHsKKyAgICAgICAgaWYgKG1hcmtlci0+c3RhcnRPZmZzZXQoKSA+
PSBlbmQoKSkgewogICAgICAgICAgICAgLy8gTWFya2VyIGlzIGNvbXBsZXRlbHkgYWZ0ZXIgdGhp
cyBydW4sIGJhaWwuIEEgbGF0ZXIgcnVuIHdpbGwgcGFpbnQgaXQuCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtMTEzOCwxMyArMTEzOCwxMyBAQCB2b2lkIElubGluZVRleHRCb3g6
OnBhaW50Q29tcG9zaXRpb25VbmRlcmxpbmVzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBG
bG9hdAogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodW5k
ZXJsaW5lLnN0YXJ0T2Zmc2V0ID4gZW5kKCkpCisgICAgICAgIGlmICh1bmRlcmxpbmUuc3RhcnRP
ZmZzZXQgPj0gZW5kKCkpCiAgICAgICAgICAgICBicmVhazsgLy8gVW5kZXJsaW5lIGlzIGNvbXBs
ZXRlbHkgYWZ0ZXIgdGhpcyBydW4sIGJhaWwuIEEgbGF0ZXIgcnVuIHdpbGwgcGFpbnQgaXQuCiAK
ICAgICAgICAgLy8gVW5kZXJsaW5lIGludGVyc2VjdHMgdGhpcyBydW4uIFBhaW50IGl0LgogICAg
ICAgICBwYWludENvbXBvc2l0aW9uVW5kZXJsaW5lKHBhaW50SW5mbywgYm94T3JpZ2luLCB1bmRl
cmxpbmUpOwogCi0gICAgICAgIGlmICh1bmRlcmxpbmUuZW5kT2Zmc2V0ID4gZW5kKCkgKyAxKQor
ICAgICAgICBpZiAodW5kZXJsaW5lLmVuZE9mZnNldCA+IGVuZCgpKQogICAgICAgICAgICAgYnJl
YWs7IC8vIFVuZGVybGluZSBhbHNvIHJ1bnMgaW50byB0aGUgbmV4dCBydW4uIEJhaWwgbm93LCBu
byBtb3JlIG1hcmtlciBhZHZhbmNlbWVudC4KICAgICB9CiB9CkBAIC0xMTY1LDcgKzExNjUsNyBA
QCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50Q29tcG9zaXRpb25VbmRlcmxpbmUoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IEZsb2F0UAogICAgIGZsb2F0IHdpZHRoID0gbG9naWNhbFdpZHRo
KCk7IC8vIGhvdyBtdWNoIGxpbmUgdG8gZHJhdwogICAgIGJvb2wgdXNlV2hvbGVXaWR0aCA9IHRy
dWU7CiAgICAgdW5zaWduZWQgcGFpbnRTdGFydCA9IG1fc3RhcnQ7Ci0gICAgdW5zaWduZWQgcGFp
bnRFbmQgPSBlbmQoKSArIDE7IC8vIGVuZCBwb2ludHMgYXQgdGhlIGxhc3QgY2hhciwgbm90IHBh
c3QgaXQKKyAgICB1bnNpZ25lZCBwYWludEVuZCA9IGVuZCgpOwogICAgIGlmIChwYWludFN0YXJ0
IDw9IHVuZGVybGluZS5zdGFydE9mZnNldCkgewogICAgICAgICBwYWludFN0YXJ0ID0gdW5kZXJs
aW5lLnN0YXJ0T2Zmc2V0OwogICAgICAgICB1c2VXaG9sZVdpZHRoID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCA1MjM0OGE1MDFjOS4uNWNhMmJj
ODYxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApAQCAtNjYs
NyArNjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFRoZXNlIGFjY2Vzc29ycyBzaG91bGQg
QVNTRVJUKCFpc0RpcnR5KCkpLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3MjY0CiAgICAgLy8gTm90ZSBsZW4oKSA9PSAxIGZvciBjb21iaW5lZCB0ZXh0IHJl
Z2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY29tcG9zaXRpb24gaXMgZW1wdHkuIFVzZSBoYXNUZXh0
Q29udGVudCgpIHRvCiAgICAgdW5zaWduZWQgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0
OyB9Ci0gICAgdW5zaWduZWQgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9sZW4gPyBtX3N0YXJ0ICsg
bV9sZW4gLSAxIDogbV9zdGFydDsgfQorICAgIHVuc2lnbmVkIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhcnQgKyBtX2xlbjsgfQogICAgIHVuc2lnbmVkIGxlbigpIGNvbnN0IHsgcmV0dXJuIG1f
bGVuOyB9CiAKICAgICB2b2lkIHNldFN0YXJ0KHVuc2lnbmVkIHN0YXJ0KSB7IG1fc3RhcnQgPSBz
dGFydDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IGI2MzA1
ZGU1ZjYzLi4yNDdkZGEwYmJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcApAQCAtMTEwOSw3ICsxMTA5LDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpzZXRUZXh0V2l0aE9m
ZnNldChjb25zdCBTdHJpbmcmIG5ld1RleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWcKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaW50IGRlbHRhID0gbmV3VGV4dC5sZW5ndGgoKSAtIHRleHQoKS5s
ZW5ndGgoKTsKLSAgICB1bnNpZ25lZCBlbmQgPSBsZW5ndGggPyBvZmZzZXQgKyBsZW5ndGggLSAx
IDogb2Zmc2V0OworICAgIHVuc2lnbmVkIGVuZCA9IG9mZnNldCArIGxlbmd0aDsKIAogICAgIG1f
bGluZXNEaXJ0eSA9IHNpbXBsZUxpbmVMYXlvdXQoKSB8fCBtX2xpbmVCb3hlcy5kaXJ0eVJhbmdl
KCp0aGlzLCBvZmZzZXQsIGVuZCwgZGVsdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKaW5kZXggNDBjYWMxYzMyZTkuLmNiNzY0NTY4
ZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVC
b3hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94
ZXMuY3BwCkBAIC01MTUsNyArNTE1LDcgQEAgVmVjdG9yPEludFJlY3Q+IFJlbmRlclRleHRMaW5l
Qm94ZXM6OmFic29sdXRlUmVjdHMoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGUKIAogc3Rh
dGljIEZsb2F0UmVjdCBsb2NhbFF1YWRGb3JUZXh0Qm94KGNvbnN0IElubGluZVRleHRCb3gmIGJv
eCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQp
CiB7Ci0gICAgdW5zaWduZWQgcmVhbEVuZCA9IHN0ZDo6bWluKGJveC5lbmQoKSArIDEsIGVuZCk7
CisgICAgdW5zaWduZWQgcmVhbEVuZCA9IHN0ZDo6bWluKGJveC5lbmQoKSwgZW5kKTsKICAgICBM
YXlvdXRSZWN0IGJveFNlbGVjdGlvblJlY3QgPSBib3gubG9jYWxTZWxlY3Rpb25SZWN0KHN0YXJ0
LCByZWFsRW5kKTsKICAgICBpZiAoIWJveFNlbGVjdGlvblJlY3QuaGVpZ2h0KCkpCiAgICAgICAg
IHJldHVybiBGbG9hdFJlY3QoKTsKQEAgLTUzNyw4ICs1MzcsNyBAQCBWZWN0b3I8SW50UmVjdD4g
UmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKGNvbnN0IFJlbmRlclRl
eHQmIHJlbgogewogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKICAgICBmb3IgKGF1dG8qIGJv
eCA9IG1fZmlyc3Q7IGJveDsgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAgIC8v
IE5vdGU6IGJveC0+ZW5kKCkgcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY2hhcmFjdGVy
LCBub3QgdGhlIGluZGV4IHBhc3QgaXQKLSAgICAgICAgaWYgKHN0YXJ0IDw9IGJveC0+c3RhcnQo
KSAmJiBib3gtPmVuZCgpIDwgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8PSBib3gtPnN0YXJ0
KCkgJiYgYm94LT5lbmQoKSA8PSBlbmQpIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCBib3VuZGFy
aWVzID0gYm94LT5jYWxjdWxhdGVCb3VuZGFyaWVzKCk7CiAgICAgICAgICAgICBpZiAodXNlU2Vs
ZWN0aW9uSGVpZ2h0KSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0
ID0gYm94LT5sb2NhbFNlbGVjdGlvblJlY3Qoc3RhcnQsIGVuZCk7CkBAIC01ODUsNyArNTg0LDcg
QEAgVmVjdG9yPEZsb2F0UXVhZD4gUmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1dGVRdWFkc0Zv
clJhbmdlKGNvbnN0IFJlbmRlclRleHQmIHIKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsK
ICAgICBmb3IgKGF1dG8qIGJveCA9IG1fZmlyc3Q7IGJveDsgYm94ID0gYm94LT5uZXh0VGV4dEJv
eCgpKSB7CiAgICAgICAgIC8vIE5vdGU6IGJveC0+ZW5kKCkgcmV0dXJucyB0aGUgaW5kZXggb2Yg
dGhlIGxhc3QgY2hhcmFjdGVyLCBub3QgdGhlIGluZGV4IHBhc3QgaXQKLSAgICAgICAgaWYgKHN0
YXJ0IDw9IGJveC0+c3RhcnQoKSAmJiBib3gtPmVuZCgpIDwgZW5kKSB7CisgICAgICAgIGlmIChz
dGFydCA8PSBib3gtPnN0YXJ0KCkgJiYgYm94LT5lbmQoKSA8PSBlbmQpIHsKICAgICAgICAgICAg
IEZsb2F0UmVjdCBib3VuZGFyaWVzID0gYm94LT5jYWxjdWxhdGVCb3VuZGFyaWVzKCk7CiAgICAg
ICAgICAgICBpZiAodXNlU2VsZWN0aW9uSGVpZ2h0KSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0
UmVjdCBzZWxlY3Rpb25SZWN0ID0gYm94LT5sb2NhbFNlbGVjdGlvblJlY3Qoc3RhcnQsIGVuZCk7
CkBAIC02MjMsMTAgKzYyMiwxMCBAQCBib29sIFJlbmRlclRleHRMaW5lQm94ZXM6OmRpcnR5UmFu
Z2UoUmVuZGVyVGV4dCYgcmVuZGVyZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZwogICAgIGZvciAo
YXV0byogY3VycmVudCA9IG1fZmlyc3Q7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0
VGV4dEJveCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCByZWx5IG9uIHRo
ZSBlbmQgb2YgYSBkaXJ0eSBsaW5lIGJveC4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NzI2NAogICAgICAgICAvLyBUZXh0IHJ1biBpcyBlbnRpcmVseSBiZWZv
cmUgdGhlIGFmZmVjdGVkIHJhbmdlLgotICAgICAgICBpZiAoY3VycmVudC0+ZW5kKCkgPCBzdGFy
dCkKKyAgICAgICAgaWYgKGN1cnJlbnQtPmVuZCgpIDw9IHN0YXJ0KQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIC8vIFRleHQgcnVuIGlzIGVudGlyZWx5IGFmdGVyIHRoZSBhZmZlY3Rl
ZCByYW5nZS4KLSAgICAgICAgaWYgKGN1cnJlbnQtPnN0YXJ0KCkgPiBlbmQpIHsKKyAgICAgICAg
aWYgKGN1cnJlbnQtPnN0YXJ0KCkgPj0gZW5kKSB7CiAgICAgICAgICAgICBjdXJyZW50LT5vZmZz
ZXRSdW4obGVuZ3RoRGVsdGEpOwogICAgICAgICAgICAgYXV0byYgcm9vdEJveCA9IGN1cnJlbnQt
PnJvb3QoKTsKICAgICAgICAgICAgIGlmICghZmlyc3RSb290Qm94KSB7CkBAIC02NDAsNyArNjM5
LDcgQEAgYm9vbCBSZW5kZXJUZXh0TGluZUJveGVzOjpkaXJ0eVJhbmdlKFJlbmRlclRleHQmIHJl
bmRlcmVyLCB1bnNpZ25lZCBzdGFydCwgdW5zaWcKICAgICAgICAgICAgIGxhc3RSb290Qm94ID0g
JnJvb3RCb3g7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBpZiAo
Y3VycmVudC0+ZW5kKCkgPj0gc3RhcnQgJiYgY3VycmVudC0+ZW5kKCkgPD0gZW5kKSB7CisgICAg
ICAgIGlmIChjdXJyZW50LT5lbmQoKSA+IHN0YXJ0ICYmIGN1cnJlbnQtPmVuZCgpIDw9IGVuZCkg
ewogICAgICAgICAgICAgLy8gVGV4dCBydW4gb3ZlcmxhcHMgd2l0aCB0aGUgbGVmdCBlbmQgb2Yg
dGhlIGFmZmVjdGVkIHJhbmdlLgogICAgICAgICAgICAgY3VycmVudC0+ZGlydHlMaW5lQm94ZXMo
KTsKICAgICAgICAgICAgIGRpcnRpZWRMaW5lcyA9IHRydWU7CkBAIC02NTIsNyArNjUxLDcgQEAg
Ym9vbCBSZW5kZXJUZXh0TGluZUJveGVzOjpkaXJ0eVJhbmdlKFJlbmRlclRleHQmIHJlbmRlcmVy
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWcKICAgICAgICAgICAgIGRpcnRpZWRMaW5lcyA9IHRydWU7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoY3VycmVudC0+
c3RhcnQoKSA8PSBlbmQgJiYgY3VycmVudC0+ZW5kKCkgPj0gZW5kKSB7CisgICAgICAgIGlmIChj
dXJyZW50LT5zdGFydCgpIDwgZW5kICYmIGN1cnJlbnQtPmVuZCgpID49IGVuZCkgewogICAgICAg
ICAgICAgLy8gVGV4dCBydW4gb3ZlcmxhcHMgd2l0aCByaWdodCBlbmQgb2YgdGhlIGFmZmVjdGVk
IHJhbmdlLgogICAgICAgICAgICAgY3VycmVudC0+ZGlydHlMaW5lQm94ZXMoKTsKICAgICAgICAg
ICAgIGRpcnRpZWRMaW5lcyA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377341</attachid>
            <date>2019-08-27 08:36:01 -0700</date>
            <delta_ts>2019-08-27 12:29:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>endd-2.patch</filename>
            <type>text/plain</type>
            <size>14545</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkZWJkYTcyMmQzYS4uYWJiMzk2MTI3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxOS0wOC0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW5saW5lVGV4dEJveDo6ZW5kKCkgc2hvdWxkIHJldHVybiBmaXJzdC1wYXN0
LWVuZCBvZmZzZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMTE4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEl0IGN1cnJlbnRseSBwb2ludHMgdG8gdGhlIGxhc3QgY2hhcmFjdGVyLCBleGNlcHQgZm9y
IGVtcHR5IHRleHQgYm94ZXMuCisgICAgICAgIFRoaXMgaXMgYXdrd2FyZCBpbiBpdHNlbGYgYW5k
IGFsc28gaW5jb25zaXN0ZW50LCBhcyB3ZSB1c2UgZmlyc3QtcGFzdC1lbmQgb2Zmc2V0IGV2ZXJ5
d2hlcmUgZWxzZS4KKworICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQb3NpdGlvbjo6ZG93bnN0cmVhbSBjb25zdCk6CisKKyAgICAgICAgQWRkIGEgY2hlY2sg
Zm9yIHplcm8gbGVuZ3RoIGNhc2UgdG8gYXZvaWQgY2hhbmdpbmcgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Y2hlY2tGb3JNYXRjaGluZ1RleHRSdW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0
cHV0TWlzbWF0Y2hpbmdDb21wbGV4TGluZUluZm9ybWF0aW9uSWZOZWVkZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZs
b3dCb3g6OnBsYWNlQm94UmFuZ2VJbklubGluZURpcmVjdGlvbik6CisgICAgICAgICogcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y2FsY3VsYXRlRG9jdW1l
bnRNYXJrZXJCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6
Y29sbGVjdE1hcmtlZFRleHRzRm9yRG9jdW1lbnRNYXJrZXJzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50Q29tcG9zaXRpb25VbmRlcmxpbmVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50Q29tcG9zaXRpb25VbmRlcmxp
bmUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94Lmg6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjplbmQgY29uc3QpOgorCisgICAgICAgIGVuZCA9IHN0
YXJ0ICsgbGVuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0OjpzZXRUZXh0V2l0aE9mZnNldCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxR
dWFkRm9yVGV4dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0TGluZUJveGVzOjph
YnNvbHV0ZVJlY3RzRm9yUmFuZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dExpbmVCb3hlczo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRMaW5lQm94ZXM6OmRpcnR5UmFuZ2UpOgorCisgICAgICAgIEhlcmUgdGhl
IGluY29taW5nICdlbmQnIHVzZWQgbGluZWJveCBzdHlsZSB0b28sIG1vdmUgdGhhdCB0byB0aGUg
bmV3IGRlZmluaXRpb24gdG9vLgorCiAyMDE5LTA4LTI0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbGF5b3V0IHN5c3RlbSBpbmRlcGVuZGVu
dCB0ZXh0IGJveCBpdGVyYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5kZXggOGIwNWJjODIz
ZWMuLjZkNTg0ZWRhZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTg3Myw3ICs4NzMs
MTAgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jvc3Np
bmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgICAgICB1bnNpZ25lZCB0ZXh0T2Zmc2V0ID0gY3Vy
cmVudFBvc2l0aW9uLm9mZnNldEluTGVhZk5vZGUoKTsKICAgICAgICAgICAgIGF1dG8gbGFzdFRl
eHRCb3ggPSB0ZXh0UmVuZGVyZXIubGFzdFRleHRCb3goKTsKICAgICAgICAgICAgIGZvciAoYXV0
byogYm94ID0gdGV4dFJlbmRlcmVyLmZpcnN0VGV4dEJveCgpOyBib3g7IGJveCA9IGJveC0+bmV4
dFRleHRCb3goKSkgewotICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0IDw9IGJveC0+ZW5k
KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWJveC0+bGVuKCkgJiYgdGV4dE9mZnNldCA9PSBi
b3gtPnN0YXJ0KCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247
CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA8IGJveC0+ZW5k
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQgPj0gYm94LT5zdGFydCgp
KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24u
Y3BwCmluZGV4IGNjZjQ2ZDg5MWI1Li4zMzIzYjEyYWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L1ZlcmlmaWNhdGlvbi5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgYm9vbCBjaGVja0Zv
ck1hdGNoaW5nVGV4dFJ1bnMoY29uc3QgRGlzcGxheTo6UnVuJiBpbmxpbmVSdW4sIGNvbnN0IElu
bGluZQogICAgICAgICAmJiBhcmVFc3NlbnRpYWxseUVxdWFsKGlubGluZVRleHRCb3gubG9naWNh
bFRvcCgpLCBpbmxpbmVSdW4ubG9naWNhbFRvcCgpKQogICAgICAgICAmJiBhcmVFc3NlbnRpYWxs
eUVxdWFsKGlubGluZVRleHRCb3gubG9naWNhbEJvdHRvbSgpLCBpbmxpbmVSdW4ubG9naWNhbEJv
dHRvbSgpKQogICAgICAgICAmJiBpbmxpbmVUZXh0Qm94LnN0YXJ0KCkgPT0gaW5saW5lUnVuLnRl
eHRDb250ZXh0KCktPnN0YXJ0KCkKLSAgICAgICAgJiYgKGlubGluZVRleHRCb3guZW5kKCkgKyAx
KSA9PSBpbmxpbmVSdW4udGV4dENvbnRleHQoKS0+ZW5kKCk7CisgICAgICAgICYmIGlubGluZVRl
eHRCb3guZW5kKCkgPT0gaW5saW5lUnVuLnRleHRDb250ZXh0KCktPmVuZCgpOwogfQogCiBzdGF0
aWMgdm9pZCBjb2xsZWN0Rmxvd0JveFN1YnRyZWUoY29uc3QgSW5saW5lRmxvd0JveCYgZmxvd2Jv
eCwgVmVjdG9yPFdlYkNvcmU6OklubGluZUJveCo+JiBpbmxpbmVCb3hlcykKQEAgLTE4NCw3ICsx
ODQsNyBAQCBzdGF0aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ0NvbXBsZXhMaW5lSW5mb3JtYXRp
b25JZk5lZWRlZChUZXh0U3RyZWFtJiBzdHJlYW0sCiAgICAgICAgICAgICBzdHJlYW0gPDwgIk1p
c21hdGNoaW5nOiBydW4iOwogCiAgICAgICAgICAgICBpZiAoaW5saW5lVGV4dEJveCkKLSAgICAg
ICAgICAgICAgICBzdHJlYW0gPDwgIiAoIiA8PCBpbmxpbmVUZXh0Qm94LT5zdGFydCgpIDw8ICIs
ICIgPDwgaW5saW5lVGV4dEJveC0+ZW5kKCkgKyAxIDw8ICIpIjsKKyAgICAgICAgICAgICAgICBz
dHJlYW0gPDwgIiAoIiA8PCBpbmxpbmVUZXh0Qm94LT5zdGFydCgpIDw8ICIsICIgPDwgaW5saW5l
VGV4dEJveC0+ZW5kKCkgPDwgIikiOwogICAgICAgICAgICAgc3RyZWFtIDw8ICIgKCIgPDwgaW5s
aW5lQm94LT5sb2dpY2FsTGVmdCgpIDw8ICIsICIgPDwgaW5saW5lQm94LT5sb2dpY2FsVG9wKCkg
PDwgIikgKCIgPDwgaW5saW5lQm94LT5sb2dpY2FsV2lkdGgoKSA8PCAieCIgPDwgaW5saW5lQm94
LT5sb2dpY2FsSGVpZ2h0KCkgPDwgIikiOwogCiAgICAgICAgICAgICBzdHJlYW0gPDwgIiBpbmxp
bmUgcnVuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAppbmRl
eCAyYTFiYzI4OWI0My4uOTZhMjQ5ZjQwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lRmxvd0JveC5jcHAKQEAgLTM5Miw3ICszOTIsNyBAQCBmbG9hdCBJbmxpbmVGbG93Qm94
OjpwbGFjZUJveFJhbmdlSW5JbmxpbmVEaXJlY3Rpb24oSW5saW5lQm94KiBmaXJzdENoaWxkLCBJ
bmxpbgogICAgICAgICAgICAgaWYgKHJlbmRlclRleHQudGV4dCgpLmxlbmd0aCgpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKG5lZWRzV29yZFNwYWNpbmcgJiYgaXNTcGFjZU9yTmV3bGluZShyZW5k
ZXJUZXh0LmNoYXJhY3RlckF0KHRleHRCb3guc3RhcnQoKSkpKQogICAgICAgICAgICAgICAgICAg
ICBsb2dpY2FsTGVmdCArPSB0ZXh0Qm94LmxpbmVTdHlsZSgpLmZvbnRDYXNjYWRlKCkud29yZFNw
YWNpbmcoKTsKLSAgICAgICAgICAgICAgICBuZWVkc1dvcmRTcGFjaW5nID0gIWlzU3BhY2VPck5l
d2xpbmUocmVuZGVyVGV4dC5jaGFyYWN0ZXJBdCh0ZXh0Qm94LmVuZCgpKSk7CisgICAgICAgICAg
ICAgICAgbmVlZHNXb3JkU3BhY2luZyA9ICFpc1NwYWNlT3JOZXdsaW5lKHJlbmRlclRleHQuY2hh
cmFjdGVyQXQodGV4dEJveC5lbmQoKSAtIDEpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHRleHRCb3guc2V0TG9naWNhbExlZnQobG9naWNhbExlZnQpOwogICAgICAgICAgICAgaWYgKGtu
b3duVG9IYXZlTm9PdmVyZmxvdygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwCmluZGV4IGRmZjhiMTEyMmRiLi45MGFlYWNmMjI5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQg
SW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCwKICAgICBWZWN0b3I8TWFya2VkVGV4dD4gbWFya2VkVGV4dHM7CiAg
ICAgaWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpTZWxlY3Rpb24pIHsKICAgICAg
ICAgLy8gVGhlIG1hcmtlZCB0ZXh0cyBmb3IgdGhlIGdhcHMgYmV0d2VlbiBkb2N1bWVudCBtYXJr
ZXJzIGFuZCBzZWxlY3Rpb24gYXJlIGltcGxpY2l0bHkgY3JlYXRlZCBieSBzdWJkaXZpZGluZyB0
aGUgZW50aXJlIGxpbmUuCi0gICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7IGNsYW1wZWRPZmZz
ZXQobV9zdGFydCksIGNsYW1wZWRPZmZzZXQoZW5kKCkgKyAxKSwgTWFya2VkVGV4dDo6VW5tYXJr
ZWQgfSk7CisgICAgICAgIG1hcmtlZFRleHRzLmFwcGVuZCh7IGNsYW1wZWRPZmZzZXQobV9zdGFy
dCksIGNsYW1wZWRPZmZzZXQoZW5kKCkpLCBNYXJrZWRUZXh0OjpVbm1hcmtlZCB9KTsKICAgICAg
ICAgaWYgKCFpc1ByaW50aW5nKSB7CiAgICAgICAgICAgICBtYXJrZWRUZXh0cy5hcHBlbmRWZWN0
b3IoY29sbGVjdE1hcmtlZFRleHRzRm9yRG9jdW1lbnRNYXJrZXJzKFRleHRQYWludFBoYXNlOjpG
b3JlZ3JvdW5kKSk7CiAKQEAgLTY5Nyw3ICs2OTcsNyBAQCBGbG9hdFJlY3QgSW5saW5lVGV4dEJv
eDo6Y2FsY3VsYXRlRG9jdW1lbnRNYXJrZXJCb3VuZHMoY29uc3QgTWFya2VkVGV4dCYgbWFya2Vk
VAogICAgIGF1dG8gaGVpZ2h0ID0gMC4xMzI0NyAqIGZvbnRTaXplOwogCiAgICAgLy8gQXZvaWQg
bWVhc3VyaW5nIHRoZSB0ZXh0IHdoZW4gdGhlIGVudGlyZSBsaW5lIGJveCBpcyBzZWxlY3RlZCBh
cyBhbiBvcHRpbWl6YXRpb24uCi0gICAgaWYgKG1hcmtlZFRleHQuc3RhcnRPZmZzZXQgfHwgbWFy
a2VkVGV4dC5lbmRPZmZzZXQgIT0gY2xhbXBlZE9mZnNldChlbmQoKSArIDEpKSB7CisgICAgaWYg
KG1hcmtlZFRleHQuc3RhcnRPZmZzZXQgfHwgbWFya2VkVGV4dC5lbmRPZmZzZXQgIT0gY2xhbXBl
ZE9mZnNldChlbmQoKSkpIHsKICAgICAgICAgVGV4dFJ1biBydW4gPSBjcmVhdGVUZXh0UnVuKCk7
CiAgICAgICAgIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdCA9IExheW91dFJlY3QoMCwgeSwgMCwg
aGVpZ2h0KTsKICAgICAgICAgbGluZUZvbnQoKS5hZGp1c3RTZWxlY3Rpb25SZWN0Rm9yVGV4dChy
dW4sIHNlbGVjdGlvblJlY3QsIG1hcmtlZFRleHQuc3RhcnRPZmZzZXQsIG1hcmtlZFRleHQuZW5k
T2Zmc2V0KTsKQEAgLTkzMiw3ICs5MzIsNyBAQCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4
dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9yRG9jdW1lbnRNYXJrZXJzKFRleHRQYWludAogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobWFya2VyLT5zdGFy
dE9mZnNldCgpID4gZW5kKCkpIHsKKyAgICAgICAgaWYgKG1hcmtlci0+c3RhcnRPZmZzZXQoKSA+
PSBlbmQoKSkgewogICAgICAgICAgICAgLy8gTWFya2VyIGlzIGNvbXBsZXRlbHkgYWZ0ZXIgdGhp
cyBydW4sIGJhaWwuIEEgbGF0ZXIgcnVuIHdpbGwgcGFpbnQgaXQuCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtMTEzOCwxMyArMTEzOCwxMyBAQCB2b2lkIElubGluZVRleHRCb3g6
OnBhaW50Q29tcG9zaXRpb25VbmRlcmxpbmVzKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBG
bG9hdAogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodW5k
ZXJsaW5lLnN0YXJ0T2Zmc2V0ID4gZW5kKCkpCisgICAgICAgIGlmICh1bmRlcmxpbmUuc3RhcnRP
ZmZzZXQgPj0gZW5kKCkpCiAgICAgICAgICAgICBicmVhazsgLy8gVW5kZXJsaW5lIGlzIGNvbXBs
ZXRlbHkgYWZ0ZXIgdGhpcyBydW4sIGJhaWwuIEEgbGF0ZXIgcnVuIHdpbGwgcGFpbnQgaXQuCiAK
ICAgICAgICAgLy8gVW5kZXJsaW5lIGludGVyc2VjdHMgdGhpcyBydW4uIFBhaW50IGl0LgogICAg
ICAgICBwYWludENvbXBvc2l0aW9uVW5kZXJsaW5lKHBhaW50SW5mbywgYm94T3JpZ2luLCB1bmRl
cmxpbmUpOwogCi0gICAgICAgIGlmICh1bmRlcmxpbmUuZW5kT2Zmc2V0ID4gZW5kKCkgKyAxKQor
ICAgICAgICBpZiAodW5kZXJsaW5lLmVuZE9mZnNldCA+IGVuZCgpKQogICAgICAgICAgICAgYnJl
YWs7IC8vIFVuZGVybGluZSBhbHNvIHJ1bnMgaW50byB0aGUgbmV4dCBydW4uIEJhaWwgbm93LCBu
byBtb3JlIG1hcmtlciBhZHZhbmNlbWVudC4KICAgICB9CiB9CkBAIC0xMTY1LDcgKzExNjUsNyBA
QCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50Q29tcG9zaXRpb25VbmRlcmxpbmUoUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IEZsb2F0UAogICAgIGZsb2F0IHdpZHRoID0gbG9naWNhbFdpZHRo
KCk7IC8vIGhvdyBtdWNoIGxpbmUgdG8gZHJhdwogICAgIGJvb2wgdXNlV2hvbGVXaWR0aCA9IHRy
dWU7CiAgICAgdW5zaWduZWQgcGFpbnRTdGFydCA9IG1fc3RhcnQ7Ci0gICAgdW5zaWduZWQgcGFp
bnRFbmQgPSBlbmQoKSArIDE7IC8vIGVuZCBwb2ludHMgYXQgdGhlIGxhc3QgY2hhciwgbm90IHBh
c3QgaXQKKyAgICB1bnNpZ25lZCBwYWludEVuZCA9IGVuZCgpOwogICAgIGlmIChwYWludFN0YXJ0
IDw9IHVuZGVybGluZS5zdGFydE9mZnNldCkgewogICAgICAgICBwYWludFN0YXJ0ID0gdW5kZXJs
aW5lLnN0YXJ0T2Zmc2V0OwogICAgICAgICB1c2VXaG9sZVdpZHRoID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCA1MjM0OGE1MDFjOS4uNWNhMmJj
ODYxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApAQCAtNjYs
NyArNjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFRoZXNlIGFjY2Vzc29ycyBzaG91bGQg
QVNTRVJUKCFpc0RpcnR5KCkpLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk3MjY0CiAgICAgLy8gTm90ZSBsZW4oKSA9PSAxIGZvciBjb21iaW5lZCB0ZXh0IHJl
Z2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY29tcG9zaXRpb24gaXMgZW1wdHkuIFVzZSBoYXNUZXh0
Q29udGVudCgpIHRvCiAgICAgdW5zaWduZWQgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0
OyB9Ci0gICAgdW5zaWduZWQgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9sZW4gPyBtX3N0YXJ0ICsg
bV9sZW4gLSAxIDogbV9zdGFydDsgfQorICAgIHVuc2lnbmVkIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhcnQgKyBtX2xlbjsgfQogICAgIHVuc2lnbmVkIGxlbigpIGNvbnN0IHsgcmV0dXJuIG1f
bGVuOyB9CiAKICAgICB2b2lkIHNldFN0YXJ0KHVuc2lnbmVkIHN0YXJ0KSB7IG1fc3RhcnQgPSBz
dGFydDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCmluZGV4IGI2MzA1
ZGU1ZjYzLi42YjQzMmYzMThkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcApAQCAtMzYwLDExICszNjAsMTAgQEAgdm9pZCBSZW5kZXJUZXh0Ojpjb2xsZWN0U2VsZWN0
aW9uUmVjdHMoVmVjdG9yPFNlbGVjdGlvblJlY3Q+JiByZWN0cywgdW5zaWduZWQgc3QKIAogICAg
IGZvciAoSW5saW5lVGV4dEJveCogYm94ID0gZmlyc3RUZXh0Qm94KCk7IGJveDsgYm94ID0gYm94
LT5uZXh0VGV4dEJveCgpKSB7CiAgICAgICAgIExheW91dFJlY3QgcmVjdDsKLSAgICAgICAgLy8g
Tm90ZSwgYm94LT5lbmQoKSByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbGFzdCBjaGFyYWN0ZXIs
IG5vdCB0aGUgaW5kZXggcGFzdCBpdC4KLSAgICAgICAgaWYgKHN0YXJ0IDw9IGJveC0+c3RhcnQo
KSAmJiBib3gtPmVuZCgpIDwgZW5kKQorICAgICAgICBpZiAoc3RhcnQgPD0gYm94LT5zdGFydCgp
ICYmIGJveC0+ZW5kKCkgPD0gZW5kKQogICAgICAgICAgICAgcmVjdCA9IGJveC0+bG9jYWxTZWxl
Y3Rpb25SZWN0KHN0YXJ0LCBlbmQpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHVuc2ln
bmVkIHJlYWxFbmQgPSBzdGQ6Om1pbihib3gtPmVuZCgpICsgMSwgZW5kKTsKKyAgICAgICAgICAg
IHVuc2lnbmVkIHJlYWxFbmQgPSBzdGQ6Om1pbihib3gtPmVuZCgpLCBlbmQpOwogICAgICAgICAg
ICAgcmVjdCA9IGJveC0+bG9jYWxTZWxlY3Rpb25SZWN0KHN0YXJ0LCByZWFsRW5kKTsKICAgICAg
ICAgICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAg
LTM5OCw4ICszOTcsOCBAQCB2b2lkIFJlbmRlclRleHQ6OmNvbGxlY3RTZWxlY3Rpb25SZWN0cyhW
ZWN0b3I8U2VsZWN0aW9uUmVjdD4mIHJlY3RzLCB1bnNpZ25lZCBzdAogICAgICAgICBpZiAoY29u
dGFpbmluZ0Jsb2NrLT5pc1J1YnlCYXNlKCkgfHwgY29udGFpbmluZ0Jsb2NrLT5pc1J1YnlUZXh0
KCkpCiAgICAgICAgICAgICBpc0xhc3RPbkxpbmUgPSAhY29udGFpbmluZ0Jsb2NrLT5jb250YWlu
aW5nQmxvY2soKS0+aW5saW5lQm94V3JhcHBlcigpLT5uZXh0T25MaW5lRXhpc3RzKCk7CiAKLSAg
ICAgICAgYm9vbCBjb250YWluc1N0YXJ0ID0gYm94LT5zdGFydCgpIDw9IHN0YXJ0ICYmIGJveC0+
ZW5kKCkgKyAxID49IHN0YXJ0OwotICAgICAgICBib29sIGNvbnRhaW5zRW5kID0gYm94LT5zdGFy
dCgpIDw9IGVuZCAmJiBib3gtPmVuZCgpICsgMSA+PSBlbmQ7CisgICAgICAgIGJvb2wgY29udGFp
bnNTdGFydCA9IGJveC0+c3RhcnQoKSA8PSBzdGFydCAmJiBib3gtPmVuZCgpID49IHN0YXJ0Owor
ICAgICAgICBib29sIGNvbnRhaW5zRW5kID0gYm94LT5zdGFydCgpIDw9IGVuZCAmJiBib3gtPmVu
ZCgpID49IGVuZDsKIAogICAgICAgICBib29sIGlzRml4ZWQgPSBmYWxzZTsKICAgICAgICAgSW50
UmVjdCBhYnNSZWN0ID0gbG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QocmVjdCksIFVzZVRy
YW5zZm9ybXMsICZpc0ZpeGVkKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwpAQCAtMTEwOSw3ICsx
MTA4LDcgQEAgdm9pZCBSZW5kZXJUZXh0OjpzZXRUZXh0V2l0aE9mZnNldChjb25zdCBTdHJpbmcm
IG5ld1RleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWcKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aW50IGRlbHRhID0gbmV3VGV4dC5sZW5ndGgoKSAtIHRleHQoKS5sZW5ndGgoKTsKLSAgICB1bnNp
Z25lZCBlbmQgPSBsZW5ndGggPyBvZmZzZXQgKyBsZW5ndGggLSAxIDogb2Zmc2V0OworICAgIHVu
c2lnbmVkIGVuZCA9IG9mZnNldCArIGxlbmd0aDsKIAogICAgIG1fbGluZXNEaXJ0eSA9IHNpbXBs
ZUxpbmVMYXlvdXQoKSB8fCBtX2xpbmVCb3hlcy5kaXJ0eVJhbmdlKCp0aGlzLCBvZmZzZXQsIGVu
ZCwgZGVsdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dExpbmVCb3hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExp
bmVCb3hlcy5jcHAKaW5kZXggNDBjYWMxYzMyZTkuLjY2MzM3MTM0OTJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dExpbmVCb3hlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRMaW5lQm94ZXMuY3BwCkBAIC01MTUsNyAr
NTE1LDcgQEAgVmVjdG9yPEludFJlY3Q+IFJlbmRlclRleHRMaW5lQm94ZXM6OmFic29sdXRlUmVj
dHMoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGUKIAogc3RhdGljIEZsb2F0UmVjdCBsb2Nh
bFF1YWRGb3JUZXh0Qm94KGNvbnN0IElubGluZVRleHRCb3gmIGJveCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGVuZCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQpCiB7Ci0gICAgdW5zaWduZWQg
cmVhbEVuZCA9IHN0ZDo6bWluKGJveC5lbmQoKSArIDEsIGVuZCk7CisgICAgdW5zaWduZWQgcmVh
bEVuZCA9IHN0ZDo6bWluKGJveC5lbmQoKSwgZW5kKTsKICAgICBMYXlvdXRSZWN0IGJveFNlbGVj
dGlvblJlY3QgPSBib3gubG9jYWxTZWxlY3Rpb25SZWN0KHN0YXJ0LCByZWFsRW5kKTsKICAgICBp
ZiAoIWJveFNlbGVjdGlvblJlY3QuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiBGbG9hdFJlY3Qo
KTsKQEAgLTUzNyw4ICs1MzcsNyBAQCBWZWN0b3I8SW50UmVjdD4gUmVuZGVyVGV4dExpbmVCb3hl
czo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKGNvbnN0IFJlbmRlclRleHQmIHJlbgogewogICAgIFZl
Y3RvcjxJbnRSZWN0PiByZWN0czsKICAgICBmb3IgKGF1dG8qIGJveCA9IG1fZmlyc3Q7IGJveDsg
Ym94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAgIC8vIE5vdGU6IGJveC0+ZW5kKCkg
cmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY2hhcmFjdGVyLCBub3QgdGhlIGluZGV4IHBh
c3QgaXQKLSAgICAgICAgaWYgKHN0YXJ0IDw9IGJveC0+c3RhcnQoKSAmJiBib3gtPmVuZCgpIDwg
ZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8PSBib3gtPnN0YXJ0KCkgJiYgYm94LT5lbmQoKSA8
PSBlbmQpIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCBib3VuZGFyaWVzID0gYm94LT5jYWxjdWxh
dGVCb3VuZGFyaWVzKCk7CiAgICAgICAgICAgICBpZiAodXNlU2VsZWN0aW9uSGVpZ2h0KSB7CiAg
ICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0ID0gYm94LT5sb2NhbFNlbGVj
dGlvblJlY3Qoc3RhcnQsIGVuZCk7CkBAIC01ODQsOCArNTgzLDcgQEAgVmVjdG9yPEZsb2F0UXVh
ZD4gUmVuZGVyVGV4dExpbmVCb3hlczo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlKGNvbnN0IFJlbmRl
clRleHQmIHIKIHsKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKICAgICBmb3IgKGF1dG8q
IGJveCA9IG1fZmlyc3Q7IGJveDsgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAg
IC8vIE5vdGU6IGJveC0+ZW5kKCkgcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGxhc3QgY2hhcmFj
dGVyLCBub3QgdGhlIGluZGV4IHBhc3QgaXQKLSAgICAgICAgaWYgKHN0YXJ0IDw9IGJveC0+c3Rh
cnQoKSAmJiBib3gtPmVuZCgpIDwgZW5kKSB7CisgICAgICAgIGlmIChzdGFydCA8PSBib3gtPnN0
YXJ0KCkgJiYgYm94LT5lbmQoKSA8PSBlbmQpIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCBib3Vu
ZGFyaWVzID0gYm94LT5jYWxjdWxhdGVCb3VuZGFyaWVzKCk7CiAgICAgICAgICAgICBpZiAodXNl
U2VsZWN0aW9uSGVpZ2h0KSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25S
ZWN0ID0gYm94LT5sb2NhbFNlbGVjdGlvblJlY3Qoc3RhcnQsIGVuZCk7CkBAIC02MjMsMTAgKzYy
MSwxMCBAQCBib29sIFJlbmRlclRleHRMaW5lQm94ZXM6OmRpcnR5UmFuZ2UoUmVuZGVyVGV4dCYg
cmVuZGVyZXIsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZwogICAgIGZvciAoYXV0byogY3VycmVudCA9
IG1fZmlyc3Q7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0VGV4dEJveCgpKSB7CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZG4ndCByZWx5IG9uIHRoZSBlbmQgb2YgYSBkaXJ0
eSBsaW5lIGJveC4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzI2NAogICAgICAgICAvLyBUZXh0IHJ1biBpcyBlbnRpcmVseSBiZWZvcmUgdGhlIGFmZmVjdGVk
IHJhbmdlLgotICAgICAgICBpZiAoY3VycmVudC0+ZW5kKCkgPCBzdGFydCkKKyAgICAgICAgaWYg
KGN1cnJlbnQtPmVuZCgpIDw9IHN0YXJ0KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IC8vIFRleHQgcnVuIGlzIGVudGlyZWx5IGFmdGVyIHRoZSBhZmZlY3RlZCByYW5nZS4KLSAgICAg
ICAgaWYgKGN1cnJlbnQtPnN0YXJ0KCkgPiBlbmQpIHsKKyAgICAgICAgaWYgKGN1cnJlbnQtPnN0
YXJ0KCkgPj0gZW5kKSB7CiAgICAgICAgICAgICBjdXJyZW50LT5vZmZzZXRSdW4obGVuZ3RoRGVs
dGEpOwogICAgICAgICAgICAgYXV0byYgcm9vdEJveCA9IGN1cnJlbnQtPnJvb3QoKTsKICAgICAg
ICAgICAgIGlmICghZmlyc3RSb290Qm94KSB7CkBAIC02NDAsNyArNjM4LDcgQEAgYm9vbCBSZW5k
ZXJUZXh0TGluZUJveGVzOjpkaXJ0eVJhbmdlKFJlbmRlclRleHQmIHJlbmRlcmVyLCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWcKICAgICAgICAgICAgIGxhc3RSb290Qm94ID0gJnJvb3RCb3g7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoY3VycmVudC0+ZW5kKCkg
Pj0gc3RhcnQgJiYgY3VycmVudC0+ZW5kKCkgPD0gZW5kKSB7CisgICAgICAgIGlmIChjdXJyZW50
LT5lbmQoKSA+IHN0YXJ0ICYmIGN1cnJlbnQtPmVuZCgpIDw9IGVuZCkgewogICAgICAgICAgICAg
Ly8gVGV4dCBydW4gb3ZlcmxhcHMgd2l0aCB0aGUgbGVmdCBlbmQgb2YgdGhlIGFmZmVjdGVkIHJh
bmdlLgogICAgICAgICAgICAgY3VycmVudC0+ZGlydHlMaW5lQm94ZXMoKTsKICAgICAgICAgICAg
IGRpcnRpZWRMaW5lcyA9IHRydWU7CkBAIC02NTIsNyArNjUwLDcgQEAgYm9vbCBSZW5kZXJUZXh0
TGluZUJveGVzOjpkaXJ0eVJhbmdlKFJlbmRlclRleHQmIHJlbmRlcmVyLCB1bnNpZ25lZCBzdGFy
dCwgdW5zaWcKICAgICAgICAgICAgIGRpcnRpZWRMaW5lcyA9IHRydWU7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoY3VycmVudC0+c3RhcnQoKSA8PSBlbmQg
JiYgY3VycmVudC0+ZW5kKCkgPj0gZW5kKSB7CisgICAgICAgIGlmIChjdXJyZW50LT5zdGFydCgp
IDwgZW5kICYmIGN1cnJlbnQtPmVuZCgpID49IGVuZCkgewogICAgICAgICAgICAgLy8gVGV4dCBy
dW4gb3ZlcmxhcHMgd2l0aCByaWdodCBlbmQgb2YgdGhlIGFmZmVjdGVkIHJhbmdlLgogICAgICAg
ICAgICAgY3VycmVudC0+ZGlydHlMaW5lQm94ZXMoKTsKICAgICAgICAgICAgIGRpcnRpZWRMaW5l
cyA9IHRydWU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>