<?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>217180</bug_id>
          
          <creation_ts>2020-10-01 06:39:31 -0700</creation_ts>
          <short_desc>[LFC][Integration] Partially convert Position::inlineBoxAndOffset to use iterator</short_desc>
          <delta_ts>2020-10-01 13:01:43 -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>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</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>1693737</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-01 06:39:31 -0700</bug_when>
    <thetext>Progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693740</commentid>
    <comment_count>1</comment_count>
      <attachid>410229</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-01 07:08:36 -0700</bug_when>
    <thetext>Created attachment 410229
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693742</commentid>
    <comment_count>2</comment_count>
      <attachid>410230</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-01 07:12:49 -0700</bug_when>
    <thetext>Created attachment 410230
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693840</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-01 12:59:32 -0700</bug_when>
    <thetext>Committed r267847: &lt;https://trac.webkit.org/changeset/267847&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410230.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693841</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-01 13:01:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/69850015&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410229</attachid>
            <date>2020-10-01 07:08:36 -0700</date>
            <delta_ts>2020-10-01 07:12:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>position-iterator.patch</filename>
            <type>text/plain</type>
            <size>14505</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NzBiZTlhN2U0YTkuLjdhNDE3NmMxNzQ1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDIwLTEwLTAxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUGFydGlhbGx5IGNvbnZlcnQgUG9zaXRp
b246OmlubGluZUJveEFuZE9mZnNldCB0byB1c2UgaXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgc3RpbGwgZm9yY2VzIHRoZSBsZWdh
Y3kgcGF0aCBhcyB0aGUgcmV0dXJuIHR5cGUgY3VycmVudGx5IHJlcXVpcmVzIGl0LgorCisgICAg
ICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaEFoZWFkRm9y
QmV0dGVyTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmlubGluZUJveEFuZE9m
ZnNldCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uUnVuSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OlJ1bkl0ZXJhdG9yOjpuZXh0T25MaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6OnRyYXZlcnNlTmV4dFRleHRSdW4pOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxpbmVMYXlvdXRTeXN0ZW1GbG93Rm9y
UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OnJ1bkZvcik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yOjp0
cmF2ZXJzZU5leHRUZXh0UnVuSW5WaXN1YWxPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICogbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6Om9wZXJhdG9yKysp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcjo6
bmV4dFRleHRSdW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OlRleHRSdW5JdGVyYXRvcjo6bmV4dFRleHRSdW5JblRleHRPcmRlciBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQ
YXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGVnYWN5UGF0aDo6
dHJhdmVyc2VOZXh0VGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlv
bjo6TGVnYWN5UGF0aDo6dHJhdmVyc2VOZXh0VGV4dFJ1bkluVmlzdWFsT3JkZXIpOiBEZWxldGVk
LgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJh
dG9yTW9kZXJuUGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Ok1v
ZGVyblBhdGg6OnRyYXZlcnNlTmV4dFRleHRSdW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246Ok1vZGVyblBhdGg6OnRyYXZlcnNlTmV4dFRleHRSdW5JblRleHRPcmRlcik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TW9kZXJuUGF0aDo6dHJhdmVy
c2VOZXh0VGV4dFJ1bkluVmlzdWFsT3JkZXIpOiBEZWxldGVkLgorCiAyMDIwLTEwLTAxICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEFYTG9h
ZGluZ0V2ZW50IG5vdGlmaWNhdGlvbnMgYXN5bmNocm9ub3VzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKaW5kZXggYTE4OGQwMWVmMjQ2Li44ZmFlODAxMmU3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
LmNwcApAQCAtMTE0NiwzMiArMTE0NiwyMyBAQCBzdGF0aWMgYm9vbCBpc05vblRleHRMZWFmQ2hp
bGQoUmVuZGVyT2JqZWN0JiBvYmplY3QpCiAgICAgcmV0dXJuICFkb3duY2FzdDxSZW5kZXJFbGVt
ZW50PihvYmplY3QpLmZpcnN0Q2hpbGQoKTsKIH0KIAotc3RhdGljIElubGluZVRleHRCb3gqIHNl
YXJjaEFoZWFkRm9yQmV0dGVyTWF0Y2goUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3N0YXRpYyBM
YXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yIHNlYXJjaEFoZWFkRm9yQmV0dGVyTWF0
Y2goUmVuZGVyVGV4dCYgcmVuZGVyZXIpCiB7Ci0gICAgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciA9
IHJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKTsKLSAgICBSZW5kZXJPYmplY3QqIG5leHQgPSBy
ZW5kZXJlcjsKKyAgICBSZW5kZXJCbG9jayogY29udGFpbmVyID0gcmVuZGVyZXIuY29udGFpbmlu
Z0Jsb2NrKCk7CisgICAgUmVuZGVyT2JqZWN0KiBuZXh0ID0gJnJlbmRlcmVyOwogICAgIHdoaWxl
ICgobmV4dCA9IG5leHQtPm5leHRJblByZU9yZGVyKGNvbnRhaW5lcikpKSB7CiAgICAgICAgIGlm
IChpczxSZW5kZXJCbG9jaz4oKm5leHQpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBpZiAobmV4dC0+aXNCUigpKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBp
ZiAoaXNOb25UZXh0TGVhZkNoaWxkKCpuZXh0KSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgaWYgKGlzPFJlbmRlclRleHQ+KCpu
ZXh0KSkgewotICAgICAgICAgICAgSW5saW5lVGV4dEJveCogbWF0Y2ggPSBudWxscHRyOwotICAg
ICAgICAgICAgdW5zaWduZWQgbWluT2Zmc2V0ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25l
ZD46Om1heCgpOwotICAgICAgICAgICAgZm9yIChJbmxpbmVUZXh0Qm94KiBib3ggPSBkb3duY2Fz
dDxSZW5kZXJUZXh0PigqbmV4dCkuZmlyc3RUZXh0Qm94KCk7IGJveDsgYm94ID0gYm94LT5uZXh0
VGV4dEJveCgpKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgY2FyZXRNaW5PZmZzZXQgPSBi
b3gtPmNhcmV0TWluT2Zmc2V0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNhcmV0TWluT2Zmc2V0
IDwgbWluT2Zmc2V0KSB7Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoID0gYm94OwotICAgICAg
ICAgICAgICAgICAgICBtaW5PZmZzZXQgPSBjYXJldE1pbk9mZnNldDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF0Y2gpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG1hdGNoOworICAgICAgICAgICAgaWYgKGF1dG8gcnVuID0gTGF5b3V0SW50ZWdy
YXRpb246OmZpcnN0VGV4dFJ1bkluVGV4dE9yZGVyRm9yKGRvd25jYXN0PFJlbmRlclRleHQ+KCpu
ZXh0KSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bjsKICAgICAgICAgfQogICAgIH0KLSAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4geyB9OwogfQogCiBzdGF0aWMgUG9zaXRpb24g
ZG93bnN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9zaXRpb24pCkBA
IC0xMjA1LDQzICsxMTk2LDQ5IEBAIElubGluZUJveEFuZE9mZnNldCBQb3NpdGlvbjo6aW5saW5l
Qm94QW5kT2Zmc2V0KEFmZmluaXR5IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9uCiAgICAgaWYgKCFy
ZW5kZXJlcikKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgY2FyZXRPZmZzZXQgfTsKIAotICAg
IElubGluZUJveCogaW5saW5lQm94ID0gbnVsbHB0cjsKKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6
UnVuSXRlcmF0b3IgcnVuOwogCiAgICAgaWYgKHJlbmRlcmVyLT5pc0JSKCkpIHsKICAgICAgICAg
YXV0byYgbGluZUJyZWFrUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJMaW5lQnJlYWs+KCpyZW5k
ZXJlcik7CiAgICAgICAgIGxpbmVCcmVha1JlbmRlcmVyLmVuc3VyZUxpbmVCb3hlcygpOwotICAg
ICAgICBpbmxpbmVCb3ggPSAhY2FyZXRPZmZzZXQgPyBsaW5lQnJlYWtSZW5kZXJlci5pbmxpbmVC
b3hXcmFwcGVyKCkgOiBudWxscHRyOworICAgICAgICBpZiAoIWNhcmV0T2Zmc2V0KQorICAgICAg
ICAgICAgcnVuID0gTGF5b3V0SW50ZWdyYXRpb246OnJ1bkZvcihsaW5lQnJlYWtSZW5kZXJlcik7
CiAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKSB7CiAgICAgICAgIGF1
dG8mIHRleHRSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5kZXJlcik7CiAgICAg
ICAgIHRleHRSZW5kZXJlci5lbnN1cmVMaW5lQm94ZXMoKTsKIAotICAgICAgICBJbmxpbmVUZXh0
Qm94KiBib3g7Ci0gICAgICAgIElubGluZVRleHRCb3gqIGNhbmRpZGF0ZSA9IG51bGxwdHI7Cisg
ICAgICAgIGF1dG8gdGV4dFJ1biA9IExheW91dEludGVncmF0aW9uOjpmaXJzdFRleHRSdW5Gb3Io
dGV4dFJlbmRlcmVyKTsKKyAgICAgICAgTGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRv
ciBjYW5kaWRhdGU7CiAKLSAgICAgICAgZm9yIChib3ggPSB0ZXh0UmVuZGVyZXIuZmlyc3RUZXh0
Qm94KCk7IGJveDsgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAgICAgICB1bnNp
Z25lZCBjYXJldE1pbk9mZnNldCA9IGJveC0+Y2FyZXRNaW5PZmZzZXQoKTsKLSAgICAgICAgICAg
IHVuc2lnbmVkIGNhcmV0TWF4T2Zmc2V0ID0gYm94LT5jYXJldE1heE9mZnNldCgpOworICAgICAg
ICBmb3IgKDsgdGV4dFJ1bjsgKyt0ZXh0UnVuKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBjYXJl
dE1pbk9mZnNldCA9IHRleHRSdW4tPm1pbmltdW1DYXJldE9mZnNldCgpOworICAgICAgICAgICAg
dW5zaWduZWQgY2FyZXRNYXhPZmZzZXQgPSB0ZXh0UnVuLT5tYXhpbXVtQ2FyZXRPZmZzZXQoKTsK
IAotICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPCBj
YXJldE1pbk9mZnNldCB8fCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpID4gY2Fy
ZXRNYXhPZmZzZXQgfHwgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPT0gY2Fy
ZXRNYXhPZmZzZXQgJiYgYm94LT5pc0xpbmVCcmVhaygpKSkKKyAgICAgICAgICAgIGlmIChzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpIDwgY2FyZXRNaW5PZmZzZXQgfHwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA+IGNhcmV0TWF4T2Zmc2V0IHx8IChzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpID09IGNhcmV0TWF4T2Zmc2V0ICYmIHRleHRSdW4t
PmlzTGluZUJyZWFrKCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA+IGNhcmV0TWluT2Zmc2V0
ICYmIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPCBjYXJldE1heE9mZnNldCkg
ewotICAgICAgICAgICAgICAgIHJldHVybiB7IGJveCwgY2FyZXRPZmZzZXQgfTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQp
ID4gY2FyZXRNaW5PZmZzZXQgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA8
IGNhcmV0TWF4T2Zmc2V0KQorICAgICAgICAgICAgICAgIHJldHVybiB7IHRleHRSdW4tPmxlZ2Fj
eUlubGluZUJveCgpLCBjYXJldE9mZnNldCB9OworCisgICAgICAgICAgICBpZiAoKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPT0gY2FyZXRNYXhPZmZzZXQpIF4gKGFmZmluaXR5
ID09IEFmZmluaXR5OjpEb3duc3RyZWFtKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgaWYgKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpID09IGNhcmV0
TWluT2Zmc2V0KSBeIChhZmZpbml0eSA9PSBBZmZpbml0eTo6VXBzdHJlYW0pKQorICAgICAgICAg
ICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBpZiAoKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
Y2FyZXRPZmZzZXQpID09IGNhcmV0TWF4T2Zmc2V0KSBeIChhZmZpbml0eSA9PSBBZmZpbml0eTo6
RG93bnN0cmVhbSkpCi0gICAgICAgICAgICAgICAgfHwgKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
Y2FyZXRPZmZzZXQpID09IGNhcmV0TWluT2Zmc2V0KSBeIChhZmZpbml0eSA9PSBBZmZpbml0eTo6
VXBzdHJlYW0pKQotICAgICAgICAgICAgICAgIHx8IChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2Fy
ZXRPZmZzZXQpID09IGNhcmV0TWF4T2Zmc2V0ICYmIGJveC0+bmV4dExlYWZPbkxpbmUoKSAmJiBi
b3gtPm5leHRMZWFmT25MaW5lKCktPmlzTGluZUJyZWFrKCkpKQorICAgICAgICAgICAgaWYgKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPT0gY2FyZXRNYXhPZmZzZXQgJiYgdGV4
dFJ1bi5uZXh0T25MaW5lKCkgJiYgdGV4dFJ1bi5uZXh0T25MaW5lKCktPmlzTGluZUJyZWFrKCkp
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGNhbmRpZGF0ZSA9IGJveDsK
KyAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHRleHRSdW47CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KGNhbmRpZGF0ZSAmJiBjYW5kaWRhdGUgPT0gdGV4dFJlbmRlcmVyLmxhc3RUZXh0Qm94KCkgJiYg
YWZmaW5pdHkgPT0gQWZmaW5pdHk6OkRvd25zdHJlYW0pIHsKLSAgICAgICAgICAgIGJveCA9IHNl
YXJjaEFoZWFkRm9yQmV0dGVyTWF0Y2goJnRleHRSZW5kZXJlcik7Ci0gICAgICAgICAgICBpZiAo
Ym94KQotICAgICAgICAgICAgICAgIGNhcmV0T2Zmc2V0ID0gYm94LT5jYXJldE1pbk9mZnNldCgp
OworCisgICAgICAgIGlmIChjYW5kaWRhdGUgJiYgIWNhbmRpZGF0ZS5uZXh0VGV4dFJ1bigpICYm
IGFmZmluaXR5ID09IEFmZmluaXR5OjpEb3duc3RyZWFtKSB7CisgICAgICAgICAgICB0ZXh0UnVu
ID0gc2VhcmNoQWhlYWRGb3JCZXR0ZXJNYXRjaCh0ZXh0UmVuZGVyZXIpOworICAgICAgICAgICAg
aWYgKHRleHRSdW4pCisgICAgICAgICAgICAgICAgY2FyZXRPZmZzZXQgPSB0ZXh0UnVuLT5taW5p
bXVtQ2FyZXRPZmZzZXQoKTsKICAgICAgICAgfQotICAgICAgICBpbmxpbmVCb3ggPSBib3ggPyBi
b3ggOiBjYW5kaWRhdGU7CisKKyAgICAgICAgcnVuID0gdGV4dFJ1biA/IHRleHRSdW4gOiBjYW5k
aWRhdGU7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGNhbkhhdmVDaGlsZHJlbkZvckVkaXRp
bmcoKmRlcHJlY2F0ZWROb2RlKCkpICYmIGlzPFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyKSAm
JiBoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChkb3duY2FzdDxS
ZW5kZXJCbG9ja0Zsb3c+KCpyZW5kZXJlcikpKSB7CiAgICAgICAgICAgICAvLyBUcnkgYSB2aXN1
YWxseSBlcXVpdmFsZW50IHBvc2l0aW9uIHdpdGggcG9zc2libHkgb3Bwb3NpdGUgZWRpdGFiaWxp
dHkuIFRoaXMgaGVscHMgaW4gY2FzZSB8dGhpc3wgaXMgaW4KQEAgLTEyNTgsMTUgKzEyNTUsMTYg
QEAgSW5saW5lQm94QW5kT2Zmc2V0IFBvc2l0aW9uOjppbmxpbmVCb3hBbmRPZmZzZXQoQWZmaW5p
dHkgYWZmaW5pdHksIFRleHREaXJlY3Rpb24KICAgICAgICAgICAgIHJldHVybiBlcXVpdmFsZW50
LmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eTo6VXBzdHJlYW0sIHByaW1hcnlEaXJlY3Rpb24p
OwogICAgICAgICB9CiAgICAgICAgIGlmIChpczxSZW5kZXJCb3g+KCpyZW5kZXJlcikpIHsKLSAg
ICAgICAgICAgIGlubGluZUJveCA9IGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKS5pbmxp
bmVCb3hXcmFwcGVyKCk7Ci0gICAgICAgICAgICBpZiAoIWlubGluZUJveCB8fCAoY2FyZXRPZmZz
ZXQgPiBpbmxpbmVCb3gtPmNhcmV0TWluT2Zmc2V0KCkgJiYgY2FyZXRPZmZzZXQgPCBpbmxpbmVC
b3gtPmNhcmV0TWF4T2Zmc2V0KCkpKQotICAgICAgICAgICAgICAgIHJldHVybiB7IGlubGluZUJv
eCwgY2FyZXRPZmZzZXQgfTsKKyAgICAgICAgICAgIHJ1biA9IExheW91dEludGVncmF0aW9uOjpy
dW5Gb3IoZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpKTsKKyAgICAgICAgICAgIGlmIChy
dW4gJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA+IHJ1bi0+bWluaW11bUNh
cmV0T2Zmc2V0KCkgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA8IHJ1bi0+
bWF4aW11bUNhcmV0T2Zmc2V0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgcnVuLT5sZWdh
Y3lJbmxpbmVCb3goKSwgY2FyZXRPZmZzZXQgfTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlm
ICghaW5saW5lQm94KQorICAgIGlmICghcnVuKQogICAgICAgICByZXR1cm4geyBudWxscHRyLCBj
YXJldE9mZnNldCB9OwogCisgICAgYXV0byogaW5saW5lQm94ID0gcnVuLT5sZWdhY3lJbmxpbmVC
b3goKTsKICAgICB1bnNpZ25lZCBjaGFyIGxldmVsID0gaW5saW5lQm94LT5iaWRpTGV2ZWwoKTsK
IAogICAgIGlmIChpbmxpbmVCb3gtPmRpcmVjdGlvbigpID09IHByaW1hcnlEaXJlY3Rpb24pIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvblJ1bkl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcAppbmRleCA0MjNlYjRkN2NlNTQuLmFk
MjY2YzQ5NGE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcApAQCAtNTUs
MTUgKzU1LDIwIEBAIGJvb2wgUnVuSXRlcmF0b3I6OmF0RW5kKCkgY29uc3QKICAgICB9KTsKIH0K
IAorTGluZVJ1bkl0ZXJhdG9yIFJ1bkl0ZXJhdG9yOjpuZXh0T25MaW5lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gTGluZVJ1bkl0ZXJhdG9yKCp0aGlzKS50cmF2ZXJzZU5leHRPbkxpbmUoKTsKK30K
KwogVGV4dFJ1bkl0ZXJhdG9yOjpUZXh0UnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmIHBh
dGhWYXJpYW50KQogICAgIDogUnVuSXRlcmF0b3IoV1RGTW92ZShwYXRoVmFyaWFudCkpCiB7CiB9
CiAKLVRleHRSdW5JdGVyYXRvciYgVGV4dFJ1bkl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRUZXh0UnVu
SW5WaXN1YWxPcmRlcigpCitUZXh0UnVuSXRlcmF0b3ImIFRleHRSdW5JdGVyYXRvcjo6dHJhdmVy
c2VOZXh0VGV4dFJ1bigpCiB7CiAgICAgV1RGOjpzd2l0Y2hPbihtX3J1bi5tX3BhdGhWYXJpYW50
LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAgIHBhdGgudHJhdmVyc2VOZXh0VGV4dFJ1bkluVmlz
dWFsT3JkZXIoKTsKKyAgICAgICAgcGF0aC50cmF2ZXJzZU5leHRUZXh0UnVuKCk7CiAgICAgfSk7
CiAgICAgcmV0dXJuICp0aGlzOwogfQpAQCAtOTcsNyArMTAyLDcgQEAgTGluZVJ1bkl0ZXJhdG9y
JiBMaW5lUnVuSXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZSgpCiBzdGF0aWMgY29uc3QgUmVu
ZGVyQmxvY2tGbG93KiBsaW5lTGF5b3V0U3lzdGVtRmxvd0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgLy8gSW4gY3VycmVudGx5IHN1cHBvcnRlZCBjYXNl
cyB0aGUgcmVuZGVyZXIgaXMgYWx3YXlzIGRpcmVjdCBjaGlsZCBvZiB0aGUgZmxvdy4KLSAgICBp
ZiAoIWlzPFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyLnBhcmVudCgpKSkKKyAgICBpZiAoIWlz
PFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXIucGFyZW50KCkpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihyZW5kZXJlci5wYXJl
bnQoKSk7CiB9CkBAIC0xMzUsMTMgKzE0MCwyMyBAQCBUZXh0UnVuUmFuZ2UgdGV4dFJ1bnNGb3Io
Y29uc3QgUmVuZGVyVGV4dCYgdGV4dCkKIAogUnVuSXRlcmF0b3IgcnVuRm9yKGNvbnN0IFJlbmRl
ckxpbmVCcmVhayYgcmVuZGVyRWxlbWVudCkKIHsKLSAgICBpZiAoYXV0byogZmxvdyA9IGxpbmVM
YXlvdXRTeXN0ZW1GbG93Rm9yUmVuZGVyZXIocmVuZGVyRWxlbWVudCkpIHsKICNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKyAgICBpZiAoYXV0byogZmxvdyA9IGxpbmVMYXlv
dXRTeXN0ZW1GbG93Rm9yUmVuZGVyZXIocmVuZGVyRWxlbWVudCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCA9IGZsb3ctPmxheW91dEZvcm1h
dHRpbmdDb250ZXh0TGluZUxheW91dCgpKQogICAgICAgICAgICAgcmV0dXJuIGxheW91dEZvcm1h
dHRpbmdDb250ZXh0TGluZUxheW91dC0+cnVuRm9yKHJlbmRlckVsZW1lbnQpOwotI2VuZGlmCiAg
ICAgfQorI2VuZGlmCisgICAgcmV0dXJuIHsgTGVnYWN5UGF0aChyZW5kZXJFbGVtZW50LmlubGlu
ZUJveFdyYXBwZXIoKSkgfTsKK30KIAorUnVuSXRlcmF0b3IgcnVuRm9yKGNvbnN0IFJlbmRlckJv
eCYgcmVuZGVyRWxlbWVudCkKK3sKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVY
VCkKKyAgICBpZiAoYXV0byogZmxvdyA9IGxpbmVMYXlvdXRTeXN0ZW1GbG93Rm9yUmVuZGVyZXIo
cmVuZGVyRWxlbWVudCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGxheW91dEZvcm1hdHRpbmdDb250
ZXh0TGluZUxheW91dCA9IGZsb3ctPmxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgp
KQorICAgICAgICAgICAgcmV0dXJuIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC0+
cnVuRm9yKHJlbmRlckVsZW1lbnQpOworICAgIH0KKyNlbmRpZgogICAgIHJldHVybiB7IExlZ2Fj
eVBhdGgocmVuZGVyRWxlbWVudC5pbmxpbmVCb3hXcmFwcGVyKCkpIH07CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1
bkl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvci5oCmluZGV4IGQ3YTlmN2Q1NDkzMy4uM2EwMWZkOGFjMjRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKQEAgLTExOSw2ICsxMTksOCBAQCBwdWJs
aWM6CiAKICAgICBib29sIGF0RW5kKCkgY29uc3Q7CiAKKyAgICBMaW5lUnVuSXRlcmF0b3IgbmV4
dE9uTGluZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgUnVuIG1fcnVuOwogfTsKQEAgLTEy
OCwxNCArMTMwLDE3IEBAIHB1YmxpYzoKICAgICBUZXh0UnVuSXRlcmF0b3IoKSB7IH0KICAgICBU
ZXh0UnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmKTsKIAotICAgIFRleHRSdW5JdGVyYXRv
ciYgb3BlcmF0b3IrKygpIHsgcmV0dXJuIHRyYXZlcnNlTmV4dFRleHRSdW5JblZpc3VhbE9yZGVy
KCk7IH0KKyAgICBUZXh0UnVuSXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7IHJldHVybiB0cmF2ZXJz
ZU5leHRUZXh0UnVuKCk7IH0KIAogICAgIGNvbnN0IFRleHRSdW4mIG9wZXJhdG9yKigpIGNvbnN0
IHsgcmV0dXJuIGdldCgpOyB9CiAgICAgY29uc3QgVGV4dFJ1biogb3BlcmF0b3ItPigpIGNvbnN0
IHsgcmV0dXJuICZnZXQoKTsgfQogCi0gICAgVGV4dFJ1bkl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRU
ZXh0UnVuSW5WaXN1YWxPcmRlcigpOworZ2kgICAgVGV4dFJ1bkl0ZXJhdG9yJiB0cmF2ZXJzZU5l
eHRUZXh0UnVuKCk7CiAgICAgVGV4dFJ1bkl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRUZXh0UnVuSW5U
ZXh0T3JkZXIoKTsKIAorICAgIFRleHRSdW5JdGVyYXRvciBuZXh0VGV4dFJ1bigpIGNvbnN0IHsg
cmV0dXJuIFRleHRSdW5JdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0VGV4dFJ1bigpOyB9Cisg
ICAgVGV4dFJ1bkl0ZXJhdG9yIG5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKSBjb25zdCB7IHJldHVy
biBUZXh0UnVuSXRlcmF0b3IoKnRoaXMpLnRyYXZlcnNlTmV4dFRleHRSdW5JblRleHRPcmRlcigp
OyB9CisKIHByaXZhdGU6CiAgICAgY29uc3QgVGV4dFJ1biYgZ2V0KCkgY29uc3QgeyByZXR1cm4g
ZG93bmNhc3Q8VGV4dFJ1bj4obV9ydW4pOyB9CiB9OwpAQCAtMTY5LDYgKzE3NCw3IEBAIFRleHRS
dW5JdGVyYXRvciBmaXJzdFRleHRSdW5Gb3IoY29uc3QgUmVuZGVyVGV4dCYpOwogVGV4dFJ1bkl0
ZXJhdG9yIGZpcnN0VGV4dFJ1bkluVGV4dE9yZGVyRm9yKGNvbnN0IFJlbmRlclRleHQmKTsKIFRl
eHRSdW5SYW5nZSB0ZXh0UnVuc0Zvcihjb25zdCBSZW5kZXJUZXh0Jik7CiBSdW5JdGVyYXRvciBy
dW5Gb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJik7CitSdW5JdGVyYXRvciBydW5Gb3IoY29uc3Qg
UmVuZGVyQm94Jik7CiBMaW5lUnVuSXRlcmF0b3IgbGluZVJ1bihjb25zdCBSdW5JdGVyYXRvciYp
OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaAppbmRleCBl
MjZhM2YyMGQxZDUuLjQxZjVkOTYwOGQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
UnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIH0K
ICAgICBpbmxpbmUgYm9vbCBpc0xhc3RUZXh0UnVuKCkgY29uc3QgeyByZXR1cm4gIW5leHRJbmxp
bmVUZXh0Qm94SW5UZXh0T3JkZXIoKTsgfTsKIAotICAgIHZvaWQgdHJhdmVyc2VOZXh0VGV4dFJ1
bkluVmlzdWFsT3JkZXIoKSB7IG1faW5saW5lQm94ID0gaW5saW5lVGV4dEJveCgpLT5uZXh0VGV4
dEJveCgpOyB9CisgICAgdm9pZCB0cmF2ZXJzZU5leHRUZXh0UnVuKCkgeyBtX2lubGluZUJveCA9
IGlubGluZVRleHRCb3goKS0+bmV4dFRleHRCb3goKTsgfQogICAgIHZvaWQgdHJhdmVyc2VOZXh0
VGV4dFJ1bkluVGV4dE9yZGVyKCkKICAgICB7CiAgICAgICAgIG1faW5saW5lQm94ID0gbmV4dElu
bGluZVRleHRCb3hJblRleHRPcmRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5J
dGVyYXRvck1vZGVyblBhdGguaAppbmRleCBkZmJhNTkwZmVmMzYuLjE3MTYxZWYyZDQwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKQEAgLTk4
LDcgKzk4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gJnJ1bigpLmxheW91dEJveCgpICE9
ICZydW5zKClbbV9ydW5JbmRleCArIDFdLmxheW91dEJveCgpOwogICAgIH07CiAKLSAgICB2b2lk
IHRyYXZlcnNlTmV4dFRleHRSdW5JblZpc3VhbE9yZGVyKCkKKyAgICB2b2lkIHRyYXZlcnNlTmV4
dFRleHRSdW4oKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFhdEVuZCgpKTsKICAgICAgICAgQVNT
RVJUKHJ1bigpLnRleHRDb250ZW50KCkpOwpAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHRyYXZlcnNlTmV4dFRleHRSdW5JblRleHRPcmRlcigpCiAgICAgewogICAgICAgICAv
LyBGSVhNRTogTm8gUlRMIGluIExGQy4KLSAgICAgICAgdHJhdmVyc2VOZXh0VGV4dFJ1bkluVmlz
dWFsT3JkZXIoKTsKKyAgICAgICAgdHJhdmVyc2VOZXh0VGV4dFJ1bigpOwogICAgIH0KIAogICAg
IHZvaWQgdHJhdmVyc2VOZXh0T25MaW5lKCkK
</data>
<flag name="commit-queue"
          id="426110"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410230</attachid>
            <date>2020-10-01 07:12:49 -0700</date>
            <delta_ts>2020-10-01 12:59:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>position-iterator-2.patch</filename>
            <type>text/plain</type>
            <size>14503</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NzBiZTlhN2U0YTkuLjdhNDE3NmMxNzQ1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDIwLTEwLTAxICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUGFydGlhbGx5IGNvbnZlcnQgUG9zaXRp
b246OmlubGluZUJveEFuZE9mZnNldCB0byB1c2UgaXRlcmF0b3IKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzE4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgc3RpbGwgZm9yY2VzIHRoZSBsZWdh
Y3kgcGF0aCBhcyB0aGUgcmV0dXJuIHR5cGUgY3VycmVudGx5IHJlcXVpcmVzIGl0LgorCisgICAg
ICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaEFoZWFkRm9y
QmV0dGVyTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmlubGluZUJveEFuZE9m
ZnNldCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uUnVuSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OlJ1bkl0ZXJhdG9yOjpuZXh0T25MaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6OnRyYXZlcnNlTmV4dFRleHRSdW4pOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmxpbmVMYXlvdXRTeXN0ZW1GbG93Rm9y
UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OnJ1bkZvcik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yOjp0
cmF2ZXJzZU5leHRUZXh0UnVuSW5WaXN1YWxPcmRlcik6IERlbGV0ZWQuCisgICAgICAgICogbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I6Om9wZXJhdG9yKysp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcjo6
bmV4dFRleHRSdW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OlRleHRSdW5JdGVyYXRvcjo6bmV4dFRleHRSdW5JblRleHRPcmRlciBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQ
YXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGVnYWN5UGF0aDo6
dHJhdmVyc2VOZXh0VGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlv
bjo6TGVnYWN5UGF0aDo6dHJhdmVyc2VOZXh0VGV4dFJ1bkluVmlzdWFsT3JkZXIpOiBEZWxldGVk
LgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJh
dG9yTW9kZXJuUGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Ok1v
ZGVyblBhdGg6OnRyYXZlcnNlTmV4dFRleHRSdW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246Ok1vZGVyblBhdGg6OnRyYXZlcnNlTmV4dFRleHRSdW5JblRleHRPcmRlcik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TW9kZXJuUGF0aDo6dHJhdmVy
c2VOZXh0VGV4dFJ1bkluVmlzdWFsT3JkZXIpOiBEZWxldGVkLgorCiAyMDIwLTEwLTAxICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEFYTG9h
ZGluZ0V2ZW50IG5vdGlmaWNhdGlvbnMgYXN5bmNocm9ub3VzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKaW5kZXggYTE4OGQwMWVmMjQ2Li44ZmFlODAxMmU3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
LmNwcApAQCAtMTE0NiwzMiArMTE0NiwyMyBAQCBzdGF0aWMgYm9vbCBpc05vblRleHRMZWFmQ2hp
bGQoUmVuZGVyT2JqZWN0JiBvYmplY3QpCiAgICAgcmV0dXJuICFkb3duY2FzdDxSZW5kZXJFbGVt
ZW50PihvYmplY3QpLmZpcnN0Q2hpbGQoKTsKIH0KIAotc3RhdGljIElubGluZVRleHRCb3gqIHNl
YXJjaEFoZWFkRm9yQmV0dGVyTWF0Y2goUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3N0YXRpYyBM
YXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yIHNlYXJjaEFoZWFkRm9yQmV0dGVyTWF0
Y2goUmVuZGVyVGV4dCYgcmVuZGVyZXIpCiB7Ci0gICAgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciA9
IHJlbmRlcmVyLT5jb250YWluaW5nQmxvY2soKTsKLSAgICBSZW5kZXJPYmplY3QqIG5leHQgPSBy
ZW5kZXJlcjsKKyAgICBSZW5kZXJCbG9jayogY29udGFpbmVyID0gcmVuZGVyZXIuY29udGFpbmlu
Z0Jsb2NrKCk7CisgICAgUmVuZGVyT2JqZWN0KiBuZXh0ID0gJnJlbmRlcmVyOwogICAgIHdoaWxl
ICgobmV4dCA9IG5leHQtPm5leHRJblByZU9yZGVyKGNvbnRhaW5lcikpKSB7CiAgICAgICAgIGlm
IChpczxSZW5kZXJCbG9jaz4oKm5leHQpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBpZiAobmV4dC0+aXNCUigpKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBp
ZiAoaXNOb25UZXh0TGVhZkNoaWxkKCpuZXh0KSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgaWYgKGlzPFJlbmRlclRleHQ+KCpu
ZXh0KSkgewotICAgICAgICAgICAgSW5saW5lVGV4dEJveCogbWF0Y2ggPSBudWxscHRyOwotICAg
ICAgICAgICAgdW5zaWduZWQgbWluT2Zmc2V0ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25l
ZD46Om1heCgpOwotICAgICAgICAgICAgZm9yIChJbmxpbmVUZXh0Qm94KiBib3ggPSBkb3duY2Fz
dDxSZW5kZXJUZXh0PigqbmV4dCkuZmlyc3RUZXh0Qm94KCk7IGJveDsgYm94ID0gYm94LT5uZXh0
VGV4dEJveCgpKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgY2FyZXRNaW5PZmZzZXQgPSBi
b3gtPmNhcmV0TWluT2Zmc2V0KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNhcmV0TWluT2Zmc2V0
IDwgbWluT2Zmc2V0KSB7Ci0gICAgICAgICAgICAgICAgICAgIG1hdGNoID0gYm94OwotICAgICAg
ICAgICAgICAgICAgICBtaW5PZmZzZXQgPSBjYXJldE1pbk9mZnNldDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF0Y2gpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG1hdGNoOworICAgICAgICAgICAgaWYgKGF1dG8gcnVuID0gTGF5b3V0SW50ZWdy
YXRpb246OmZpcnN0VGV4dFJ1bkluVGV4dE9yZGVyRm9yKGRvd25jYXN0PFJlbmRlclRleHQ+KCpu
ZXh0KSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJ1bjsKICAgICAgICAgfQogICAgIH0KLSAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4geyB9OwogfQogCiBzdGF0aWMgUG9zaXRpb24g
ZG93bnN0cmVhbUlnbm9yaW5nRWRpdGluZ0JvdW5kYXJpZXMoUG9zaXRpb24gcG9zaXRpb24pCkBA
IC0xMjA1LDQzICsxMTk2LDQ5IEBAIElubGluZUJveEFuZE9mZnNldCBQb3NpdGlvbjo6aW5saW5l
Qm94QW5kT2Zmc2V0KEFmZmluaXR5IGFmZmluaXR5LCBUZXh0RGlyZWN0aW9uCiAgICAgaWYgKCFy
ZW5kZXJlcikKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgY2FyZXRPZmZzZXQgfTsKIAotICAg
IElubGluZUJveCogaW5saW5lQm94ID0gbnVsbHB0cjsKKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6
UnVuSXRlcmF0b3IgcnVuOwogCiAgICAgaWYgKHJlbmRlcmVyLT5pc0JSKCkpIHsKICAgICAgICAg
YXV0byYgbGluZUJyZWFrUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJMaW5lQnJlYWs+KCpyZW5k
ZXJlcik7CiAgICAgICAgIGxpbmVCcmVha1JlbmRlcmVyLmVuc3VyZUxpbmVCb3hlcygpOwotICAg
ICAgICBpbmxpbmVCb3ggPSAhY2FyZXRPZmZzZXQgPyBsaW5lQnJlYWtSZW5kZXJlci5pbmxpbmVC
b3hXcmFwcGVyKCkgOiBudWxscHRyOworICAgICAgICBpZiAoIWNhcmV0T2Zmc2V0KQorICAgICAg
ICAgICAgcnVuID0gTGF5b3V0SW50ZWdyYXRpb246OnJ1bkZvcihsaW5lQnJlYWtSZW5kZXJlcik7
CiAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVyZXIpKSB7CiAgICAgICAgIGF1
dG8mIHRleHRSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5kZXJlcik7CiAgICAg
ICAgIHRleHRSZW5kZXJlci5lbnN1cmVMaW5lQm94ZXMoKTsKIAotICAgICAgICBJbmxpbmVUZXh0
Qm94KiBib3g7Ci0gICAgICAgIElubGluZVRleHRCb3gqIGNhbmRpZGF0ZSA9IG51bGxwdHI7Cisg
ICAgICAgIGF1dG8gdGV4dFJ1biA9IExheW91dEludGVncmF0aW9uOjpmaXJzdFRleHRSdW5Gb3Io
dGV4dFJlbmRlcmVyKTsKKyAgICAgICAgTGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRv
ciBjYW5kaWRhdGU7CiAKLSAgICAgICAgZm9yIChib3ggPSB0ZXh0UmVuZGVyZXIuZmlyc3RUZXh0
Qm94KCk7IGJveDsgYm94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAgICAgICB1bnNp
Z25lZCBjYXJldE1pbk9mZnNldCA9IGJveC0+Y2FyZXRNaW5PZmZzZXQoKTsKLSAgICAgICAgICAg
IHVuc2lnbmVkIGNhcmV0TWF4T2Zmc2V0ID0gYm94LT5jYXJldE1heE9mZnNldCgpOworICAgICAg
ICBmb3IgKDsgdGV4dFJ1bjsgKyt0ZXh0UnVuKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBjYXJl
dE1pbk9mZnNldCA9IHRleHRSdW4tPm1pbmltdW1DYXJldE9mZnNldCgpOworICAgICAgICAgICAg
dW5zaWduZWQgY2FyZXRNYXhPZmZzZXQgPSB0ZXh0UnVuLT5tYXhpbXVtQ2FyZXRPZmZzZXQoKTsK
IAotICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPCBj
YXJldE1pbk9mZnNldCB8fCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpID4gY2Fy
ZXRNYXhPZmZzZXQgfHwgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPT0gY2Fy
ZXRNYXhPZmZzZXQgJiYgYm94LT5pc0xpbmVCcmVhaygpKSkKKyAgICAgICAgICAgIGlmIChzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpIDwgY2FyZXRNaW5PZmZzZXQgfHwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA+IGNhcmV0TWF4T2Zmc2V0IHx8IChzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpID09IGNhcmV0TWF4T2Zmc2V0ICYmIHRleHRSdW4t
PmlzTGluZUJyZWFrKCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAg
ICBpZiAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA+IGNhcmV0TWluT2Zmc2V0
ICYmIHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPCBjYXJldE1heE9mZnNldCkg
ewotICAgICAgICAgICAgICAgIHJldHVybiB7IGJveCwgY2FyZXRPZmZzZXQgfTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQp
ID4gY2FyZXRNaW5PZmZzZXQgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA8
IGNhcmV0TWF4T2Zmc2V0KQorICAgICAgICAgICAgICAgIHJldHVybiB7IHRleHRSdW4tPmxlZ2Fj
eUlubGluZUJveCgpLCBjYXJldE9mZnNldCB9OworCisgICAgICAgICAgICBpZiAoKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPT0gY2FyZXRNYXhPZmZzZXQpIF4gKGFmZmluaXR5
ID09IEFmZmluaXR5OjpEb3duc3RyZWFtKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAg
ICAgICAgICAgaWYgKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FyZXRPZmZzZXQpID09IGNhcmV0
TWluT2Zmc2V0KSBeIChhZmZpbml0eSA9PSBBZmZpbml0eTo6VXBzdHJlYW0pKQorICAgICAgICAg
ICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBpZiAoKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
Y2FyZXRPZmZzZXQpID09IGNhcmV0TWF4T2Zmc2V0KSBeIChhZmZpbml0eSA9PSBBZmZpbml0eTo6
RG93bnN0cmVhbSkpCi0gICAgICAgICAgICAgICAgfHwgKChzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
Y2FyZXRPZmZzZXQpID09IGNhcmV0TWluT2Zmc2V0KSBeIChhZmZpbml0eSA9PSBBZmZpbml0eTo6
VXBzdHJlYW0pKQotICAgICAgICAgICAgICAgIHx8IChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2Fy
ZXRPZmZzZXQpID09IGNhcmV0TWF4T2Zmc2V0ICYmIGJveC0+bmV4dExlYWZPbkxpbmUoKSAmJiBi
b3gtPm5leHRMZWFmT25MaW5lKCktPmlzTGluZUJyZWFrKCkpKQorICAgICAgICAgICAgaWYgKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPT0gY2FyZXRNYXhPZmZzZXQgJiYgdGV4
dFJ1bi5uZXh0T25MaW5lKCkgJiYgdGV4dFJ1bi5uZXh0T25MaW5lKCktPmlzTGluZUJyZWFrKCkp
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGNhbmRpZGF0ZSA9IGJveDsK
KyAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHRleHRSdW47CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KGNhbmRpZGF0ZSAmJiBjYW5kaWRhdGUgPT0gdGV4dFJlbmRlcmVyLmxhc3RUZXh0Qm94KCkgJiYg
YWZmaW5pdHkgPT0gQWZmaW5pdHk6OkRvd25zdHJlYW0pIHsKLSAgICAgICAgICAgIGJveCA9IHNl
YXJjaEFoZWFkRm9yQmV0dGVyTWF0Y2goJnRleHRSZW5kZXJlcik7Ci0gICAgICAgICAgICBpZiAo
Ym94KQotICAgICAgICAgICAgICAgIGNhcmV0T2Zmc2V0ID0gYm94LT5jYXJldE1pbk9mZnNldCgp
OworCisgICAgICAgIGlmIChjYW5kaWRhdGUgJiYgIWNhbmRpZGF0ZS5uZXh0VGV4dFJ1bigpICYm
IGFmZmluaXR5ID09IEFmZmluaXR5OjpEb3duc3RyZWFtKSB7CisgICAgICAgICAgICB0ZXh0UnVu
ID0gc2VhcmNoQWhlYWRGb3JCZXR0ZXJNYXRjaCh0ZXh0UmVuZGVyZXIpOworICAgICAgICAgICAg
aWYgKHRleHRSdW4pCisgICAgICAgICAgICAgICAgY2FyZXRPZmZzZXQgPSB0ZXh0UnVuLT5taW5p
bXVtQ2FyZXRPZmZzZXQoKTsKICAgICAgICAgfQotICAgICAgICBpbmxpbmVCb3ggPSBib3ggPyBi
b3ggOiBjYW5kaWRhdGU7CisKKyAgICAgICAgcnVuID0gdGV4dFJ1biA/IHRleHRSdW4gOiBjYW5k
aWRhdGU7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGNhbkhhdmVDaGlsZHJlbkZvckVkaXRp
bmcoKmRlcHJlY2F0ZWROb2RlKCkpICYmIGlzPFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyKSAm
JiBoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChkb3duY2FzdDxS
ZW5kZXJCbG9ja0Zsb3c+KCpyZW5kZXJlcikpKSB7CiAgICAgICAgICAgICAvLyBUcnkgYSB2aXN1
YWxseSBlcXVpdmFsZW50IHBvc2l0aW9uIHdpdGggcG9zc2libHkgb3Bwb3NpdGUgZWRpdGFiaWxp
dHkuIFRoaXMgaGVscHMgaW4gY2FzZSB8dGhpc3wgaXMgaW4KQEAgLTEyNTgsMTUgKzEyNTUsMTYg
QEAgSW5saW5lQm94QW5kT2Zmc2V0IFBvc2l0aW9uOjppbmxpbmVCb3hBbmRPZmZzZXQoQWZmaW5p
dHkgYWZmaW5pdHksIFRleHREaXJlY3Rpb24KICAgICAgICAgICAgIHJldHVybiBlcXVpdmFsZW50
LmlubGluZUJveEFuZE9mZnNldChBZmZpbml0eTo6VXBzdHJlYW0sIHByaW1hcnlEaXJlY3Rpb24p
OwogICAgICAgICB9CiAgICAgICAgIGlmIChpczxSZW5kZXJCb3g+KCpyZW5kZXJlcikpIHsKLSAg
ICAgICAgICAgIGlubGluZUJveCA9IGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKS5pbmxp
bmVCb3hXcmFwcGVyKCk7Ci0gICAgICAgICAgICBpZiAoIWlubGluZUJveCB8fCAoY2FyZXRPZmZz
ZXQgPiBpbmxpbmVCb3gtPmNhcmV0TWluT2Zmc2V0KCkgJiYgY2FyZXRPZmZzZXQgPCBpbmxpbmVC
b3gtPmNhcmV0TWF4T2Zmc2V0KCkpKQotICAgICAgICAgICAgICAgIHJldHVybiB7IGlubGluZUJv
eCwgY2FyZXRPZmZzZXQgfTsKKyAgICAgICAgICAgIHJ1biA9IExheW91dEludGVncmF0aW9uOjpy
dW5Gb3IoZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpKTsKKyAgICAgICAgICAgIGlmIChy
dW4gJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA+IHJ1bi0+bWluaW11bUNh
cmV0T2Zmc2V0KCkgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcmV0T2Zmc2V0KSA8IHJ1bi0+
bWF4aW11bUNhcmV0T2Zmc2V0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgcnVuLT5sZWdh
Y3lJbmxpbmVCb3goKSwgY2FyZXRPZmZzZXQgfTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlm
ICghaW5saW5lQm94KQorICAgIGlmICghcnVuKQogICAgICAgICByZXR1cm4geyBudWxscHRyLCBj
YXJldE9mZnNldCB9OwogCisgICAgYXV0byogaW5saW5lQm94ID0gcnVuLT5sZWdhY3lJbmxpbmVC
b3goKTsKICAgICB1bnNpZ25lZCBjaGFyIGxldmVsID0gaW5saW5lQm94LT5iaWRpTGV2ZWwoKTsK
IAogICAgIGlmIChpbmxpbmVCb3gtPmRpcmVjdGlvbigpID09IHByaW1hcnlEaXJlY3Rpb24pIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvblJ1bkl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcAppbmRleCA0MjNlYjRkN2NlNTQuLmFk
MjY2YzQ5NGE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcApAQCAtNTUs
MTUgKzU1LDIwIEBAIGJvb2wgUnVuSXRlcmF0b3I6OmF0RW5kKCkgY29uc3QKICAgICB9KTsKIH0K
IAorTGluZVJ1bkl0ZXJhdG9yIFJ1bkl0ZXJhdG9yOjpuZXh0T25MaW5lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gTGluZVJ1bkl0ZXJhdG9yKCp0aGlzKS50cmF2ZXJzZU5leHRPbkxpbmUoKTsKK30K
KwogVGV4dFJ1bkl0ZXJhdG9yOjpUZXh0UnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmIHBh
dGhWYXJpYW50KQogICAgIDogUnVuSXRlcmF0b3IoV1RGTW92ZShwYXRoVmFyaWFudCkpCiB7CiB9
CiAKLVRleHRSdW5JdGVyYXRvciYgVGV4dFJ1bkl0ZXJhdG9yOjp0cmF2ZXJzZU5leHRUZXh0UnVu
SW5WaXN1YWxPcmRlcigpCitUZXh0UnVuSXRlcmF0b3ImIFRleHRSdW5JdGVyYXRvcjo6dHJhdmVy
c2VOZXh0VGV4dFJ1bigpCiB7CiAgICAgV1RGOjpzd2l0Y2hPbihtX3J1bi5tX3BhdGhWYXJpYW50
LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAgIHBhdGgudHJhdmVyc2VOZXh0VGV4dFJ1bkluVmlz
dWFsT3JkZXIoKTsKKyAgICAgICAgcGF0aC50cmF2ZXJzZU5leHRUZXh0UnVuKCk7CiAgICAgfSk7
CiAgICAgcmV0dXJuICp0aGlzOwogfQpAQCAtOTcsNyArMTAyLDcgQEAgTGluZVJ1bkl0ZXJhdG9y
JiBMaW5lUnVuSXRlcmF0b3I6OnRyYXZlcnNlTmV4dE9uTGluZSgpCiBzdGF0aWMgY29uc3QgUmVu
ZGVyQmxvY2tGbG93KiBsaW5lTGF5b3V0U3lzdGVtRmxvd0ZvclJlbmRlcmVyKGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgLy8gSW4gY3VycmVudGx5IHN1cHBvcnRlZCBjYXNl
cyB0aGUgcmVuZGVyZXIgaXMgYWx3YXlzIGRpcmVjdCBjaGlsZCBvZiB0aGUgZmxvdy4KLSAgICBp
ZiAoIWlzPFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyLnBhcmVudCgpKSkKKyAgICBpZiAoIWlz
PFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXIucGFyZW50KCkpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihyZW5kZXJlci5wYXJl
bnQoKSk7CiB9CkBAIC0xMzUsMTMgKzE0MCwyMyBAQCBUZXh0UnVuUmFuZ2UgdGV4dFJ1bnNGb3Io
Y29uc3QgUmVuZGVyVGV4dCYgdGV4dCkKIAogUnVuSXRlcmF0b3IgcnVuRm9yKGNvbnN0IFJlbmRl
ckxpbmVCcmVhayYgcmVuZGVyRWxlbWVudCkKIHsKLSAgICBpZiAoYXV0byogZmxvdyA9IGxpbmVM
YXlvdXRTeXN0ZW1GbG93Rm9yUmVuZGVyZXIocmVuZGVyRWxlbWVudCkpIHsKICNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKyAgICBpZiAoYXV0byogZmxvdyA9IGxpbmVMYXlv
dXRTeXN0ZW1GbG93Rm9yUmVuZGVyZXIocmVuZGVyRWxlbWVudCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCA9IGZsb3ctPmxheW91dEZvcm1h
dHRpbmdDb250ZXh0TGluZUxheW91dCgpKQogICAgICAgICAgICAgcmV0dXJuIGxheW91dEZvcm1h
dHRpbmdDb250ZXh0TGluZUxheW91dC0+cnVuRm9yKHJlbmRlckVsZW1lbnQpOwotI2VuZGlmCiAg
ICAgfQorI2VuZGlmCisgICAgcmV0dXJuIHsgTGVnYWN5UGF0aChyZW5kZXJFbGVtZW50LmlubGlu
ZUJveFdyYXBwZXIoKSkgfTsKK30KIAorUnVuSXRlcmF0b3IgcnVuRm9yKGNvbnN0IFJlbmRlckJv
eCYgcmVuZGVyRWxlbWVudCkKK3sKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVY
VCkKKyAgICBpZiAoYXV0byogZmxvdyA9IGxpbmVMYXlvdXRTeXN0ZW1GbG93Rm9yUmVuZGVyZXIo
cmVuZGVyRWxlbWVudCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGxheW91dEZvcm1hdHRpbmdDb250
ZXh0TGluZUxheW91dCA9IGZsb3ctPmxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dCgp
KQorICAgICAgICAgICAgcmV0dXJuIGxheW91dEZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC0+
cnVuRm9yKHJlbmRlckVsZW1lbnQpOworICAgIH0KKyNlbmRpZgogICAgIHJldHVybiB7IExlZ2Fj
eVBhdGgocmVuZGVyRWxlbWVudC5pbmxpbmVCb3hXcmFwcGVyKCkpIH07CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1
bkl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvci5oCmluZGV4IGQ3YTlmN2Q1NDkzMy4uMzllOGExYTBmM2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKQEAgLTExOSw2ICsxMTksOCBAQCBwdWJs
aWM6CiAKICAgICBib29sIGF0RW5kKCkgY29uc3Q7CiAKKyAgICBMaW5lUnVuSXRlcmF0b3IgbmV4
dE9uTGluZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgUnVuIG1fcnVuOwogfTsKQEAgLTEy
OCwxNCArMTMwLDE3IEBAIHB1YmxpYzoKICAgICBUZXh0UnVuSXRlcmF0b3IoKSB7IH0KICAgICBU
ZXh0UnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmKTsKIAotICAgIFRleHRSdW5JdGVyYXRv
ciYgb3BlcmF0b3IrKygpIHsgcmV0dXJuIHRyYXZlcnNlTmV4dFRleHRSdW5JblZpc3VhbE9yZGVy
KCk7IH0KKyAgICBUZXh0UnVuSXRlcmF0b3ImIG9wZXJhdG9yKysoKSB7IHJldHVybiB0cmF2ZXJz
ZU5leHRUZXh0UnVuKCk7IH0KIAogICAgIGNvbnN0IFRleHRSdW4mIG9wZXJhdG9yKigpIGNvbnN0
IHsgcmV0dXJuIGdldCgpOyB9CiAgICAgY29uc3QgVGV4dFJ1biogb3BlcmF0b3ItPigpIGNvbnN0
IHsgcmV0dXJuICZnZXQoKTsgfQogCi0gICAgVGV4dFJ1bkl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRU
ZXh0UnVuSW5WaXN1YWxPcmRlcigpOworICAgIFRleHRSdW5JdGVyYXRvciYgdHJhdmVyc2VOZXh0
VGV4dFJ1bigpOwogICAgIFRleHRSdW5JdGVyYXRvciYgdHJhdmVyc2VOZXh0VGV4dFJ1bkluVGV4
dE9yZGVyKCk7CiAKKyAgICBUZXh0UnVuSXRlcmF0b3IgbmV4dFRleHRSdW4oKSBjb25zdCB7IHJl
dHVybiBUZXh0UnVuSXRlcmF0b3IoKnRoaXMpLnRyYXZlcnNlTmV4dFRleHRSdW4oKTsgfQorICAg
IFRleHRSdW5JdGVyYXRvciBuZXh0VGV4dFJ1bkluVGV4dE9yZGVyKCkgY29uc3QgeyByZXR1cm4g
VGV4dFJ1bkl0ZXJhdG9yKCp0aGlzKS50cmF2ZXJzZU5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKTsg
fQorCiBwcml2YXRlOgogICAgIGNvbnN0IFRleHRSdW4mIGdldCgpIGNvbnN0IHsgcmV0dXJuIGRv
d25jYXN0PFRleHRSdW4+KG1fcnVuKTsgfQogfTsKQEAgLTE2OSw2ICsxNzQsNyBAQCBUZXh0UnVu
SXRlcmF0b3IgZmlyc3RUZXh0UnVuRm9yKGNvbnN0IFJlbmRlclRleHQmKTsKIFRleHRSdW5JdGVy
YXRvciBmaXJzdFRleHRSdW5JblRleHRPcmRlckZvcihjb25zdCBSZW5kZXJUZXh0Jik7CiBUZXh0
UnVuUmFuZ2UgdGV4dFJ1bnNGb3IoY29uc3QgUmVuZGVyVGV4dCYpOwogUnVuSXRlcmF0b3IgcnVu
Rm9yKGNvbnN0IFJlbmRlckxpbmVCcmVhayYpOworUnVuSXRlcmF0b3IgcnVuRm9yKGNvbnN0IFJl
bmRlckJveCYpOwogTGluZVJ1bkl0ZXJhdG9yIGxpbmVSdW4oY29uc3QgUnVuSXRlcmF0b3ImKTsK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmgKaW5kZXggZTI2
YTNmMjBkMWQ1Li40MWY1ZDk2MDhkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1
bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICB9CiAg
ICAgaW5saW5lIGJvb2wgaXNMYXN0VGV4dFJ1bigpIGNvbnN0IHsgcmV0dXJuICFuZXh0SW5saW5l
VGV4dEJveEluVGV4dE9yZGVyKCk7IH07CiAKLSAgICB2b2lkIHRyYXZlcnNlTmV4dFRleHRSdW5J
blZpc3VhbE9yZGVyKCkgeyBtX2lubGluZUJveCA9IGlubGluZVRleHRCb3goKS0+bmV4dFRleHRC
b3goKTsgfQorICAgIHZvaWQgdHJhdmVyc2VOZXh0VGV4dFJ1bigpIHsgbV9pbmxpbmVCb3ggPSBp
bmxpbmVUZXh0Qm94KCktPm5leHRUZXh0Qm94KCk7IH0KICAgICB2b2lkIHRyYXZlcnNlTmV4dFRl
eHRSdW5JblRleHRPcmRlcigpCiAgICAgewogICAgICAgICBtX2lubGluZUJveCA9IG5leHRJbmxp
bmVUZXh0Qm94SW5UZXh0T3JkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRl
cmF0b3JNb2Rlcm5QYXRoLmgKaW5kZXggZGZiYTU5MGZlZjM2Li4xNzE2MWVmMmQ0MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
blJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC05OCw3
ICs5OCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICZydW4oKS5sYXlvdXRCb3goKSAhPSAm
cnVucygpW21fcnVuSW5kZXggKyAxXS5sYXlvdXRCb3goKTsKICAgICB9OwogCi0gICAgdm9pZCB0
cmF2ZXJzZU5leHRUZXh0UnVuSW5WaXN1YWxPcmRlcigpCisgICAgdm9pZCB0cmF2ZXJzZU5leHRU
ZXh0UnVuKCkKICAgICB7CiAgICAgICAgIEFTU0VSVCghYXRFbmQoKSk7CiAgICAgICAgIEFTU0VS
VChydW4oKS50ZXh0Q29udGVudCgpKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCB0cmF2ZXJzZU5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKQogICAgIHsKICAgICAgICAgLy8g
RklYTUU6IE5vIFJUTCBpbiBMRkMuCi0gICAgICAgIHRyYXZlcnNlTmV4dFRleHRSdW5JblZpc3Vh
bE9yZGVyKCk7CisgICAgICAgIHRyYXZlcnNlTmV4dFRleHRSdW4oKTsKICAgICB9CiAKICAgICB2
b2lkIHRyYXZlcnNlTmV4dE9uTGluZSgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>