<?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>218283</bug_id>
          
          <creation_ts>2020-10-28 06:36:36 -0700</creation_ts>
          <short_desc>[LFC][Integration] RenderBlockFlow::positionForPointWithInlineChildren should use iterator</short_desc>
          <delta_ts>2020-10-29 13:19:19 -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=218350</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</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>1702296</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-28 06:36:36 -0700</bug_when>
    <thetext>less InlineBox access</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702298</commentid>
    <comment_count>1</comment_count>
      <attachid>412526</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-28 06:39:17 -0700</bug_when>
    <thetext>Created attachment 412526
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702662</commentid>
    <comment_count>2</comment_count>
      <attachid>412628</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-29 03:15:00 -0700</bug_when>
    <thetext>Created attachment 412628
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702703</commentid>
    <comment_count>3</comment_count>
      <attachid>412641</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-29 06:39:03 -0700</bug_when>
    <thetext>Created attachment 412641
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702704</commentid>
    <comment_count>4</comment_count>
      <attachid>412642</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-29 06:40:38 -0700</bug_when>
    <thetext>Created attachment 412642
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702710</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-29 07:21:38 -0700</bug_when>
    <thetext>Committed r269146: &lt;https://trac.webkit.org/changeset/269146&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412642.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702711</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-29 07:22:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/70808360&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412526</attachid>
            <date>2020-10-28 06:39:17 -0700</date>
            <delta_ts>2020-10-29 03:15:00 -0700</delta_ts>
            <desc>patch</desc>
            <filename>lfc-positionForPointWithInlineChildren.patch</filename>
            <type>text/plain</type>
            <size>17237</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NDUxYTI4YjQ1YTAuLjhlYzNjZjBiYjFiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMwIEBACisyMDIwLTEwLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlv
bkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuIHNob3VsZCB1c2UgaXRlcmF0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6UGF0aExpbmU6OnRvcFdpdGhMZWFkaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoTGluZTo6Ym90dG9tV2l0aExlYWRp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhMaW5l
OjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQYXRoLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6dG9wV2l0
aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxp
bmVJdGVyYXRvckxlZ2FjeVBhdGg6OmJvdHRvbVdpdGhMZWFkaW5nIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpsZWdh
Y3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6dG9wV2l0aExlYWRp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVJdGVy
YXRvck1vZGVyblBhdGg6OmJvdHRvbVdpdGhMZWFkaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpsZWdhY3lSb290
SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpSdW5JdGVyYXRvck1vZGVyblBhdGg6OmxlZ2FjeUlubGluZUJveCBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwb3NpdGlvbkZvclJ1bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlvbkZvckJveCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oOgorCiAyMDIwLTEwLTI3ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb25jdXJyZW50IGRp
c3BsYXkgbGlzdHNdIEFkZCBhbHRlcm5hdGUgdmVyc2lvbnMgb2YgZXhpc3RpbmcgZGlzcGxheSBs
aXN0IGl0ZW1zIHRoYXQgb25seSBjb250YWluIGlubGluZSBkYXRhCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkxpbmVJdGVyYXRvci5oCmluZGV4IDI0MjE2ZTE2YTlmMi4uMmI0YzNkMzNkNDljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAg
ICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IHNlbGVj
dGlvblRvcEZvckhpdFRlc3RpbmcoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkJv
dHRvbSgpIGNvbnN0OworICAgIExheW91dFVuaXQgdG9wV2l0aExlYWRpbmcoKSBjb25zdDsKKyAg
ICBMYXlvdXRVbml0IGJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3Q7CiAKICAgICBmbG9hdCB5KCkg
Y29uc3Q7CiAgICAgZmxvYXQgbG9naWNhbEhlaWdodCgpIGNvbnN0OwpAQCAtNjQsNiArNjYsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0hvcml6b250YWwoKSBjb25zdDsKIAogICAgIGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CisgICAgY29uc3QgUm9vdElu
bGluZUJveCogbGVnYWN5Um9vdElubGluZUJveCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAg
ZnJpZW5kIGNsYXNzIExpbmVJdGVyYXRvcjsKQEAgLTE1Myw2ICsxNTYsMjAgQEAgaW5saW5lIExh
eW91dFVuaXQgUGF0aExpbmU6OnNlbGVjdGlvbkJvdHRvbSgpIGNvbnN0CiAgICAgfSk7CiB9CiAK
K2lubGluZSBMYXlvdXRVbml0IFBhdGhMaW5lOjp0b3BXaXRoTGVhZGluZygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0byYgcGF0
aCkgeworICAgICAgICByZXR1cm4gcGF0aC50b3BXaXRoTGVhZGluZygpOworICAgIH0pOworfQor
CitpbmxpbmUgTGF5b3V0VW5pdCBQYXRoTGluZTo6Ym90dG9tV2l0aExlYWRpbmcoKSBjb25zdAor
eworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8m
IHBhdGgpIHsKKyAgICAgICAgcmV0dXJuIHBhdGguYm90dG9tV2l0aExlYWRpbmcoKTsKKyAgICB9
KTsKK30KKwogaW5saW5lIGZsb2F0IFBhdGhMaW5lOjp5KCkgY29uc3QKIHsKICAgICByZXR1cm4g
V1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CkBAIC0x
ODEsNiArMTk4LDEzIEBAIGlubGluZSBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIFBhdGhMaW5lOjpj
b250YWluaW5nQmxvY2soKSBjb25zdAogICAgIH0pOwogfQogCitpbmxpbmUgY29uc3QgUm9vdElu
bGluZUJveCogUGF0aExpbmU6OmxlZ2FjeVJvb3RJbmxpbmVCb3goKSBjb25zdAoreworICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsK
KyAgICAgICAgcmV0dXJuIHBhdGgubGVnYWN5Um9vdElubGluZUJveCgpOworICAgIH0pOworfQor
CiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvckxlZ2FjeVBhdGguaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvckxlZ2FjeVBh
dGguaAppbmRleCA1MDgxZjljYzcwMzIuLmM4YjZkYjM3NTk4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9y
TGVnYWN5UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvckxlZ2FjeVBhdGguaApAQCAtNDksMTIgKzQ5LDE1IEBA
IHB1YmxpYzoKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvblRvcCgpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdElubGluZUJveC0+c2VsZWN0aW9uVG9wKCk7IH0KICAgICBMYXlvdXRVbml0IHNlbGVjdGlv
blRvcEZvckhpdFRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVj
dGlvblRvcChSb290SW5saW5lQm94OjpGb3JIaXRUZXN0aW5nOjpZZXMpOyB9CiAgICAgTGF5b3V0
VW5pdCBzZWxlY3Rpb25Cb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNl
bGVjdGlvbkJvdHRvbSgpOyB9CisgICAgTGF5b3V0VW5pdCB0b3BXaXRoTGVhZGluZygpIGNvbnN0
IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZVRvcFdpdGhMZWFkaW5nKCk7IH0KKyAgICBM
YXlvdXRVbml0IGJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yb290SW5saW5l
Qm94LT5saW5lQm90dG9tV2l0aExlYWRpbmcoKTsgfQogCiAgICAgZmxvYXQgeSgpIGNvbnN0IHsg
cmV0dXJuIG1fcm9vdElubGluZUJveC0+eSgpOyB9CiAgICAgZmxvYXQgbG9naWNhbEhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bG9naWNhbEhlaWdodCgpOyB9CiAgICAg
Ym9vbCBpc0hvcml6b250YWwoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmlzSG9y
aXpvbnRhbCgpOyB9CiAKICAgICBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGNvbnRhaW5pbmdCbG9j
aygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+YmxvY2tGbG93KCk7IH0KKyAgICBj
b25zdCBSb290SW5saW5lQm94KiBsZWdhY3lSb290SW5saW5lQm94KCkgY29uc3QgeyByZXR1cm4g
bV9yb290SW5saW5lQm94OyB9CiAKICAgICB2b2lkIHRyYXZlcnNlTmV4dCgpCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uTGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oCmluZGV4IDA4
ZTc0ODg0OWEwZS4uYjRlYjEyNzMzNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC01MSwxNSArNTEsMTkgQEAgcHVibGljOgogCiAg
ICAgTGF5b3V0VW5pdCB0b3AoKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRS
b3VuZChsaW5lKCkucmVjdCgpLnkoKSk7IH0KICAgICBMYXlvdXRVbml0IGJvdHRvbSgpIGNvbnN0
IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUoKS5yZWN0KCkubWF4WSgp
KTsgfQorICAgIC8vIEZJWE1FOiBXaGF0IHNob3VsZCB0aGVzZSByZWFsbHkgYmU/CiAgICAgTGF5
b3V0VW5pdCBzZWxlY3Rpb25Ub3AoKSBjb25zdCB7IHJldHVybiB0b3AoKTsgfQogICAgIExheW91
dFVuaXQgc2VsZWN0aW9uVG9wRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIHRvcCgpOyB9
CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20oKSBjb25zdCB7IHJldHVybiBib3R0b20o
KTsgfQorICAgIExheW91dFVuaXQgdG9wV2l0aExlYWRpbmcoKSBjb25zdCB7IHJldHVybiB0b3Ao
KTsgfQorICAgIExheW91dFVuaXQgYm90dG9tV2l0aExlYWRpbmcoKSBjb25zdCB7IHJldHVybiBi
b3R0b20oKTsgfQogCiAgICAgZmxvYXQgeSgpIGNvbnN0IHsgcmV0dXJuIHRvcCgpOyB9CiAgICAg
ZmxvYXQgbG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5yZWN0KCkuaGVpZ2h0
KCk7IH0KICAgICBib29sIGlzSG9yaXpvbnRhbCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAog
ICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkgY29uc3QgeyByZXR1
cm4gbV9pbmxpbmVDb250ZW50LT5jb250YWluaW5nQmxvY2soKTsgfQorICAgIGNvbnN0IFJvb3RJ
bmxpbmVCb3gqIGxlZ2FjeVJvb3RJbmxpbmVCb3goKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
CiAKICAgICB2b2lkIHRyYXZlcnNlTmV4dCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rl
cm5QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaAppbmRleCA2ODcxZWM0YmU5MzIuLmE3YzI2NDg1
MzcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRo
LmgKQEAgLTE3MCw3ICsxNzAsNiBAQCBwdWJsaWM6CiAKICAgICBJbmxpbmVCb3gqIGxlZ2FjeUlu
bGluZUJveCgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDFiZjM1YjI3YWVjNy4uYzQ5NmU0NmNmY2YwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzMw
NiwxOSArMzMwNiwxOSBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6Y29udGFpbnNOb25aZXJvQmlk
aUxldmVsKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBvc2l0aW9uIFJlbmRlckJs
b2NrRmxvdzo6cG9zaXRpb25Gb3JCb3goSW5saW5lQm94ICpib3gsIGJvb2wgc3RhcnQpIGNvbnN0
CitzdGF0aWMgUG9zaXRpb24gcG9zaXRpb25Gb3JSdW4oY29uc3QgUmVuZGVyQmxvY2tGbG93JiBm
bG93LCBMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3IgcnVuLCBib29sIHN0YXJ0KQogewot
ICAgIGlmICghYm94KQorICAgIGlmICghcnVuKQogICAgICAgICByZXR1cm4gUG9zaXRpb24oKTsK
IAotICAgIGlmICghYm94LT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUoKSkKLSAgICAgICAgcmV0
dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRpb24obm9uUHNldWRvRWxlbWVudCgpLCBzdGFy
dCA/IGNhcmV0TWluT2Zmc2V0KCkgOiBjYXJldE1heE9mZnNldCgpKTsKKyAgICBpZiAoIXJ1bi0+
cmVuZGVyZXIoKS5ub25Qc2V1ZG9Ob2RlKCkpCisgICAgICAgIHJldHVybiBtYWtlRGVwcmVjYXRl
ZExlZ2FjeVBvc2l0aW9uKGZsb3cubm9uUHNldWRvRWxlbWVudCgpLCBzdGFydCA/IGZsb3cuY2Fy
ZXRNaW5PZmZzZXQoKSA6IGZsb3cuY2FyZXRNYXhPZmZzZXQoKSk7CiAKLSAgICBpZiAoIWlzPElu
bGluZVRleHRCb3g+KCpib3gpKQotICAgICAgICByZXR1cm4gbWFrZURlcHJlY2F0ZWRMZWdhY3lQ
b3NpdGlvbihib3gtPnJlbmRlcmVyKCkubm9uUHNldWRvTm9kZSgpLCBzdGFydCA/IGJveC0+cmVu
ZGVyZXIoKS5jYXJldE1pbk9mZnNldCgpIDogYm94LT5yZW5kZXJlcigpLmNhcmV0TWF4T2Zmc2V0
KCkpOworICAgIGlmICghaXM8TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcj4ocnVu
KSkKKyAgICAgICAgcmV0dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRpb24ocnVuLT5yZW5k
ZXJlcigpLm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyBydW4tPnJlbmRlcmVyKCkuY2FyZXRNaW5P
ZmZzZXQoKSA6IHJ1bi0+cmVuZGVyZXIoKS5jYXJldE1heE9mZnNldCgpKTsKIAotICAgIGF1dG8m
IHRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PigqYm94KTsKLSAgICByZXR1cm4gbWFr
ZURlcHJlY2F0ZWRMZWdhY3lQb3NpdGlvbih0ZXh0Qm94LnJlbmRlcmVyKCkubm9uUHNldWRvTm9k
ZSgpLCBzdGFydCA/IHRleHRCb3guc3RhcnQoKSA6IHRleHRCb3guc3RhcnQoKSArIHRleHRCb3gu
bGVuKCkpOworICAgIGF1dG8mIHRleHRSdW4gPSBkb3duY2FzdDxMYXlvdXRJbnRlZ3JhdGlvbjo6
VGV4dFJ1bkl0ZXJhdG9yPihydW4pOworICAgIHJldHVybiBtYWtlRGVwcmVjYXRlZExlZ2FjeVBv
c2l0aW9uKHRleHRSdW4tPnJlbmRlcmVyKCkubm9uUHNldWRvTm9kZSgpLCBzdGFydCA/IHRleHRS
dW4tPmxvY2FsU3RhcnRPZmZzZXQoKSA6IHRleHRSdW4tPmxvY2FsRW5kT2Zmc2V0KCkpOwogfQog
CiBSZW5kZXJUZXh0KiBSZW5kZXJCbG9ja0Zsb3c6OmZpbmRDbG9zZXN0VGV4dEF0QWJzb2x1dGVQ
b2ludChjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKQEAgLTMzOTAsODkgKzMzOTAsODYgQEAgVmlz
aWJsZVBvc2l0aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVD
aGlsZHJlbihjb25zdCBMYXlvdXQKIHsKICAgICBBU1NFUlQoY2hpbGRyZW5JbmxpbmUoKSk7CiAK
LSAgICBlbnN1cmVMaW5lQm94ZXMoKTsKKyAgICBhdXRvIGZpcnN0TGluZSA9IExheW91dEludGVn
cmF0aW9uOjpmaXJzdExpbmVGb3IoKnRoaXMpOwogCi0gICAgaWYgKCFmaXJzdFJvb3RCb3goKSkK
KyAgICBpZiAoIWZpcnN0TGluZSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3NpdGlv
bigwLCBBZmZpbml0eTo6RG93bnN0cmVhbSk7CiAKICAgICBib29sIGxpbmVzQXJlRmxpcHBlZCA9
IHN0eWxlKCkuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpOwogICAgIGJvb2wgYmxvY2tzQXJl
RmxpcHBlZCA9IHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKTsKIAogICAgIC8v
IGxvb2sgZm9yIHRoZSBjbG9zZXN0IGxpbmUgYm94IGluIHRoZSByb290IGJveCB3aGljaCBpcyBh
dCB0aGUgcGFzc2VkLWluIHkgY29vcmRpbmF0ZQotICAgIElubGluZUJveCogY2xvc2VzdEJveCA9
IDA7Ci0gICAgUm9vdElubGluZUJveCogZmlyc3RSb290Qm94V2l0aENoaWxkcmVuID0gMDsKLSAg
ICBSb290SW5saW5lQm94KiBsYXN0Um9vdEJveFdpdGhDaGlsZHJlbiA9IDA7Ci0gICAgZm9yIChS
b290SW5saW5lQm94KiByb290ID0gZmlyc3RSb290Qm94KCk7IHJvb3Q7IHJvb3QgPSByb290LT5u
ZXh0Um9vdEJveCgpKSB7Ci0gICAgICAgIGlmIChmcmFnbWVudCAmJiByb290LT5jb250YWluaW5n
RnJhZ21lbnQoKSAhPSBmcmFnbWVudCkKKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0
b3IgY2xvc2VzdFJ1bjsKKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yIGZpcnN0
TGluZVdpdGhDaGlsZHJlbjsKKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yIGxh
c3RMaW5lV2l0aENoaWxkcmVuOworICAgIGZvciAoYXV0byBsaW5lID0gZmlyc3RMaW5lOyBsaW5l
OyBsaW5lLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChmcmFnbWVudCAmJiBsaW5lLT5s
ZWdhY3lSb290SW5saW5lQm94KCkgJiYgbGluZS0+bGVnYWN5Um9vdElubGluZUJveCgpLT5jb250
YWluaW5nRnJhZ21lbnQoKSAhPSBmcmFnbWVudCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIGlmICghcm9vdC0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpKQorICAgICAgICBpZiAoIWxp
bmUuZmlyc3RSdW4oKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIWZpcnN0
Um9vdEJveFdpdGhDaGlsZHJlbikKLSAgICAgICAgICAgIGZpcnN0Um9vdEJveFdpdGhDaGlsZHJl
biA9IHJvb3Q7CisgICAgICAgIGlmICghZmlyc3RMaW5lV2l0aENoaWxkcmVuKQorICAgICAgICAg
ICAgZmlyc3RMaW5lV2l0aENoaWxkcmVuID0gbGluZTsKIAotICAgICAgICBpZiAoIWxpbmVzQXJl
RmxpcHBlZCAmJiByb290LT5pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoKSAmJiAocG9pbnRJbkxvZ2lj
YWxDb250ZW50cy55KCkgPCByb290LT5saW5lVG9wV2l0aExlYWRpbmcoKQotICAgICAgICAgICAg
fHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPT0gcm9v
dC0+bGluZVRvcFdpdGhMZWFkaW5nKCkpKSkKKyAgICAgICAgaWYgKCFsaW5lc0FyZUZsaXBwZWQg
JiYgbGluZS0+bGVnYWN5Um9vdElubGluZUJveCgpICYmIGxpbmUtPmxlZ2FjeVJvb3RJbmxpbmVC
b3goKS0+aXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkKKyAgICAgICAgICAgICYmIChwb2ludEluTG9n
aWNhbENvbnRlbnRzLnkoKSA8IGxpbmUtPnRvcFdpdGhMZWFkaW5nKCkgfHwgKGJsb2Nrc0FyZUZs
aXBwZWQgJiYgcG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPT0gbGluZS0+dG9wV2l0aExlYWRp
bmcoKSkpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgbGFzdFJvb3RCb3hXaXRoQ2hp
bGRyZW4gPSByb290OworICAgICAgICBsYXN0TGluZVdpdGhDaGlsZHJlbiA9IGxpbmU7CiAKICAg
ICAgICAgLy8gY2hlY2sgaWYgdGhpcyByb290IGxpbmUgYm94IGlzIGxvY2F0ZWQgYXQgdGhpcyB5
IGNvb3JkaW5hdGUKLSAgICAgICAgaWYgKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpIDwgcm9v
dC0+c2VsZWN0aW9uQm90dG9tKCkgfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJbkxvZ2lj
YWxDb250ZW50cy55KCkgPT0gcm9vdC0+c2VsZWN0aW9uQm90dG9tKCkpKSB7CisgICAgICAgIGlm
IChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGxpbmUtPnNlbGVjdGlvbkJvdHRvbSgpIHx8
IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGxpbmUt
PnNlbGVjdGlvbkJvdHRvbSgpKSkgewogICAgICAgICAgICAgaWYgKGxpbmVzQXJlRmxpcHBlZCkg
ewotICAgICAgICAgICAgICAgIFJvb3RJbmxpbmVCb3gqIG5leHRSb290Qm94V2l0aENoaWxkcmVu
ID0gcm9vdC0+bmV4dFJvb3RCb3goKTsKLSAgICAgICAgICAgICAgICB3aGlsZSAobmV4dFJvb3RC
b3hXaXRoQ2hpbGRyZW4gJiYgIW5leHRSb290Qm94V2l0aENoaWxkcmVuLT5maXJzdExlYWZEZXNj
ZW5kYW50KCkpCi0gICAgICAgICAgICAgICAgICAgIG5leHRSb290Qm94V2l0aENoaWxkcmVuID0g
bmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4tPm5leHRSb290Qm94KCk7CisgICAgICAgICAgICAgICAg
YXV0byBuZXh0TGluZVdpdGhDaGlsZHJlbiA9IGxpbmUubmV4dCgpOworICAgICAgICAgICAgICAg
IHdoaWxlIChuZXh0TGluZVdpdGhDaGlsZHJlbiAmJiAhbmV4dExpbmVXaXRoQ2hpbGRyZW4uZmly
c3RSdW4oKSkKKyAgICAgICAgICAgICAgICAgICAgbmV4dExpbmVXaXRoQ2hpbGRyZW4udHJhdmVy
c2VOZXh0KCk7CiAKLSAgICAgICAgICAgICAgICBpZiAobmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4g
JiYgbmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4tPmlzRmlyc3RBZnRlclBhZ2VCcmVhaygpICYmIChw
b2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA+IG5leHRSb290Qm94V2l0aENoaWxkcmVuLT5saW5l
VG9wV2l0aExlYWRpbmcoKQotICAgICAgICAgICAgICAgICAgICB8fCAoIWJsb2Nrc0FyZUZsaXBw
ZWQgJiYgcG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPT0gbmV4dFJvb3RCb3hXaXRoQ2hpbGRy
ZW4tPmxpbmVUb3BXaXRoTGVhZGluZygpKSkpCisgICAgICAgICAgICAgICAgaWYgKG5leHRMaW5l
V2l0aENoaWxkcmVuICYmIG5leHRMaW5lV2l0aENoaWxkcmVuLT5sZWdhY3lSb290SW5saW5lQm94
KCkgJiYgbmV4dExpbmVXaXRoQ2hpbGRyZW4tPmxlZ2FjeVJvb3RJbmxpbmVCb3goKS0+aXNGaXJz
dEFmdGVyUGFnZUJyZWFrKCkKKyAgICAgICAgICAgICAgICAgICAgJiYgKHBvaW50SW5Mb2dpY2Fs
Q29udGVudHMueSgpID4gbmV4dExpbmVXaXRoQ2hpbGRyZW4tPnRvcFdpdGhMZWFkaW5nKCkgfHwg
KCFibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IG5leHRM
aW5lV2l0aENoaWxkcmVuLT50b3BXaXRoTGVhZGluZygpKSkpCiAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1dG8gY2xvc2VzdFJ1
biA9IExheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3Iocm9vdCkuY2xvc2VzdFJ1bkZvckxv
Z2ljYWxMZWZ0UG9zaXRpb24ocG9pbnRJbkxvZ2ljYWxDb250ZW50cy54KCkpKQotICAgICAgICAg
ICAgICAgIGNsb3Nlc3RCb3ggPSBjbG9zZXN0UnVuLT5sZWdhY3lJbmxpbmVCb3goKTsKLSAgICAg
ICAgICAgIGlmIChjbG9zZXN0Qm94KQorICAgICAgICAgICAgY2xvc2VzdFJ1biA9IGxpbmUuY2xv
c2VzdFJ1bkZvckxvZ2ljYWxMZWZ0UG9zaXRpb24ocG9pbnRJbkxvZ2ljYWxDb250ZW50cy54KCkp
OworICAgICAgICAgICAgaWYgKGNsb3Nlc3RSdW4pCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9CiAKICAgICBib29sIG1vdmVDYXJldFRvQm91bmRhcnkgPSBmcmFtZSgp
LmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkTW92ZUNhcmV0VG9Ib3Jpem9udGFsQm91bmRhcnlX
aGVuUGFzdFRvcE9yQm90dG9tKCk7CiAKLSAgICBpZiAoIW1vdmVDYXJldFRvQm91bmRhcnkgJiYg
IWNsb3Nlc3RCb3ggJiYgbGFzdFJvb3RCb3hXaXRoQ2hpbGRyZW4pIHsKKyAgICBpZiAoIW1vdmVD
YXJldFRvQm91bmRhcnkgJiYgIWNsb3Nlc3RSdW4gJiYgbGFzdExpbmVXaXRoQ2hpbGRyZW4pIHsK
ICAgICAgICAgLy8geSBjb29yZGluYXRlIGlzIGJlbG93IGxhc3Qgcm9vdCBsaW5lIGJveCwgcHJl
dGVuZCB3ZSBoaXQgaXQKLSAgICAgICAgYXV0byBjbG9zZXN0UnVuID0gTGF5b3V0SW50ZWdyYXRp
b246OkxpbmVJdGVyYXRvcihsYXN0Um9vdEJveFdpdGhDaGlsZHJlbikuY2xvc2VzdFJ1bkZvckxv
Z2ljYWxMZWZ0UG9zaXRpb24ocG9pbnRJbkxvZ2ljYWxDb250ZW50cy54KCkpOwotICAgICAgICBj
bG9zZXN0Qm94ID0gY2xvc2VzdFJ1biA/IGNsb3Nlc3RSdW4tPmxlZ2FjeUlubGluZUJveCgpIDog
bnVsbHB0cjsKKyAgICAgICAgY2xvc2VzdFJ1biA9IGxhc3RMaW5lV2l0aENoaWxkcmVuLmNsb3Nl
c3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueCgpKTsK
ICAgICB9CiAKLSAgICBpZiAoY2xvc2VzdEJveCkgeworICAgIGlmIChjbG9zZXN0UnVuKSB7CiAg
ICAgICAgIGlmIChtb3ZlQ2FyZXRUb0JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICBMYXlvdXRVbml0
IGZpcnN0Um9vdEJveFdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0Um9vdEJveFdpdGhD
aGlsZHJlbi0+c2VsZWN0aW9uVG9wKFJvb3RJbmxpbmVCb3g6OkZvckhpdFRlc3Rpbmc6Olllcyks
IExheW91dFVuaXQoZmlyc3RSb290Qm94V2l0aENoaWxkcmVuLT5sb2dpY2FsVG9wKCkpKTsKLSAg
ICAgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGZpcnN0Um9vdEJveFdp
dGhDaGlsZHJlblRvcAotICAgICAgICAgICAgICAgIHx8IChibG9ja3NBcmVGbGlwcGVkICYmIHBv
aW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGZpcnN0Um9vdEJveFdpdGhDaGlsZHJlblRvcCkp
IHsKLSAgICAgICAgICAgICAgICBJbmxpbmVCb3gqIGJveCA9IGZpcnN0Um9vdEJveFdpdGhDaGls
ZHJlbi0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpOwotICAgICAgICAgICAgICAgIGlmIChib3gtPmlz
TGluZUJyZWFrKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKElubGluZUJveCogbmV3Qm94
ID0gYm94LT5uZXh0TGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBib3ggPSBuZXdCb3g7CisgICAgICAgICAgICBMYXlvdXRVbml0IGZpcnN0TGlu
ZVdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0TGluZVdpdGhDaGlsZHJlbi0+c2VsZWN0
aW9uVG9wRm9ySGl0VGVzdGluZygpLCBMYXlvdXRVbml0KGZpcnN0TGluZVdpdGhDaGlsZHJlbi0+
dG9wKCkpKTsKKyAgICAgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGZp
cnN0TGluZVdpdGhDaGlsZHJlblRvcAorICAgICAgICAgICAgICAgIHx8IChibG9ja3NBcmVGbGlw
cGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGZpcnN0TGluZVdpdGhDaGlsZHJl
blRvcCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJ1biA9IGZpcnN0TGluZVdpdGhDaGlsZHJl
bi5maXJzdFJ1bigpOworICAgICAgICAgICAgICAgIGlmIChydW4tPmlzTGluZUJyZWFrKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gbmV4dCA9IHJ1bi5uZXh0T25MaW5lSWdub3Jp
bmdMaW5lQnJlYWsoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1biA9IG5leHQ7CiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIHkgY29vcmRpbmF0ZSBpcyBhYm92ZSBm
aXJzdCByb290IGxpbmUgYm94LCBzbyByZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBmaXJzdAotICAg
ICAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvckJveChib3gsIHRydWUpOworICAgICAgICAg
ICAgICAgIHJldHVybiBwb3NpdGlvbkZvclJ1bigqdGhpcywgcnVuLCB0cnVlKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIHBhc3MgdGhlIGJveCBhIHRvcCBwb3NpdGlv
biB0aGF0IGlzIGluc2lkZSBpdAotICAgICAgICBMYXlvdXRQb2ludCBwb2ludChwb2ludEluTG9n
aWNhbENvbnRlbnRzLngoKSwgY2xvc2VzdEJveC0+cm9vdCgpLmJsb2NrRGlyZWN0aW9uUG9pbnRJ
bkxpbmUoKSk7CisgICAgICAgIExheW91dFBvaW50IHBvaW50KHBvaW50SW5Mb2dpY2FsQ29udGVu
dHMueCgpLCBjbG9zZXN0UnVuLmxpbmUoKS0+YmxvY2tEaXJlY3Rpb25Qb2ludEluTGluZSgpKTsK
ICAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgcG9p
bnQgPSBwb2ludC50cmFuc3Bvc2VkUG9pbnQoKTsKLSAgICAgICAgaWYgKGNsb3Nlc3RCb3gtPnJl
bmRlcmVyKCkuaXNSZXBsYWNlZCgpKQotICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uRm9yUG9p
bnRSZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJpZXMoKnRoaXMsIGRvd25jYXN0PFJlbmRlckJveD4o
Y2xvc2VzdEJveC0+cmVuZGVyZXIoKSksIHBvaW50KTsKLSAgICAgICAgcmV0dXJuIGNsb3Nlc3RC
b3gtPnJlbmRlcmVyKCkucG9zaXRpb25Gb3JQb2ludChwb2ludCwgbnVsbHB0cik7CisgICAgICAg
IGlmIChjbG9zZXN0UnVuLT5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBwb3NpdGlvbkZvclBvaW50UmVzcGVjdGluZ0VkaXRpbmdCb3VuZGFyaWVzKCp0aGlzLCBj
b25zdF9jYXN0PFJlbmRlckJveCY+KGRvd25jYXN0PFJlbmRlckJveD4oY2xvc2VzdFJ1bi0+cmVu
ZGVyZXIoKSkpLCBwb2ludCk7CisgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFJlbmRlck9iamVj
dCY+KGNsb3Nlc3RSdW4tPnJlbmRlcmVyKCkpLnBvc2l0aW9uRm9yUG9pbnQocG9pbnQsIG51bGxw
dHIpOwogICAgIH0KIAotICAgIGlmIChsYXN0Um9vdEJveFdpdGhDaGlsZHJlbikgeworICAgIGlm
IChsYXN0TGluZVdpdGhDaGlsZHJlbikgewogICAgICAgICAvLyBXZSBoaXQgdGhpcyBjYXNlIGZv
ciBNYWMgYmVoYXZpb3Igd2hlbiB0aGUgWSBjb29yZGluYXRlIGlzIGJlbG93IHRoZSBsYXN0IGJv
eC4KICAgICAgICAgQVNTRVJUKG1vdmVDYXJldFRvQm91bmRhcnkpOwotICAgICAgICBJbmxpbmVC
b3gqIGxvZ2ljYWxseUxhc3RCb3g7Ci0gICAgICAgIGlmIChsYXN0Um9vdEJveFdpdGhDaGlsZHJl
bi0+Z2V0TG9naWNhbEVuZEJveFdpdGhOb2RlKGxvZ2ljYWxseUxhc3RCb3gpKQotICAgICAgICAg
ICAgcmV0dXJuIHBvc2l0aW9uRm9yQm94KGxvZ2ljYWxseUxhc3RCb3gsIGZhbHNlKTsKKyAgICAg
ICAgaWYgKGF1dG8gbG9naWNhbGx5TGFzdFJ1biA9IGxhc3RMaW5lV2l0aENoaWxkcmVuLmxvZ2lj
YWxFbmRSdW5XaXRoTm9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uRm9yUnVuKCp0
aGlzLCBsb2dpY2FsbHlMYXN0UnVuLCBmYWxzZSk7CiAgICAgfQogCiAgICAgLy8gQ2FuJ3QgcmVh
Y2ggdGhpcy4gV2UgaGF2ZSBhIHJvb3QgbGluZSBib3gsIGJ1dCBpdCBoYXMgbm8ga2lkcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAppbmRleCAxNTYyZGE2YTE4
ZjUuLjNkOWI1MWYyODg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuaApAQCAtNTI3LDcgKzUyNyw2IEBAIHByaXZhdGU6CiAgICAgR2FwUmVjdHMgaW5saW5l
U2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYg
cm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJv
b3RCbG9jaywKICAgICAgICAgTGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxUb3AsIExheW91dFVuaXQm
IGxhc3RMb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxSaWdodCwgY29uc3QgTG9n
aWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYsIGNvbnN0IFBhaW50SW5mbyopIG92ZXJyaWRlOwog
ICAgIAotICAgIFBvc2l0aW9uIHBvc2l0aW9uRm9yQm94KElubGluZUJveCosIGJvb2wgc3RhcnQg
PSB0cnVlKSBjb25zdDsKICAgICBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludFdpdGhJ
bmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkxvZ2ljYWxDb250ZW50cywg
Y29uc3QgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIGFkZEZv
Y3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4oVmVjdG9yPExheW91dFJlY3Q+JiByZWN0cywg
Y29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqKSBvdmVycmlkZTsKIAo=
</data>
<flag name="commit-queue"
          id="429004"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412628</attachid>
            <date>2020-10-29 03:15:00 -0700</date>
            <delta_ts>2020-10-29 06:39:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>lfc-positionForPointWithInlineChildren-2.patch</filename>
            <type>text/plain</type>
            <size>17481</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NDUxYTI4YjQ1YTAuLjhlYzNjZjBiYjFiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMwIEBACisyMDIwLTEwLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlv
bkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuIHNob3VsZCB1c2UgaXRlcmF0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI4MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6UGF0aExpbmU6OnRvcFdpdGhMZWFkaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoTGluZTo6Ym90dG9tV2l0aExlYWRp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhMaW5l
OjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQYXRoLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yTGVnYWN5UGF0aDo6dG9wV2l0
aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxp
bmVJdGVyYXRvckxlZ2FjeVBhdGg6OmJvdHRvbVdpdGhMZWFkaW5nIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3JMZWdhY3lQYXRoOjpsZWdh
Y3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmg6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yTW9kZXJuUGF0aDo6dG9wV2l0aExlYWRp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVJdGVy
YXRvck1vZGVyblBhdGg6OmJvdHRvbVdpdGhMZWFkaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3JNb2Rlcm5QYXRoOjpsZWdhY3lSb290
SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpSdW5JdGVyYXRvck1vZGVyblBhdGg6OmxlZ2FjeUlubGluZUJveCBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwb3NpdGlvbkZvclJ1bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zs
b3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlvbkZvckJveCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oOgorCiAyMDIwLTEwLTI3ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb25jdXJyZW50IGRp
c3BsYXkgbGlzdHNdIEFkZCBhbHRlcm5hdGUgdmVyc2lvbnMgb2YgZXhpc3RpbmcgZGlzcGxheSBs
aXN0IGl0ZW1zIHRoYXQgb25seSBjb250YWluIGlubGluZSBkYXRhCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkxpbmVJdGVyYXRvci5oCmluZGV4IDI0MjE2ZTE2YTlmMi4uMjZiY2IzZDNjNjlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaApAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAg
ICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IHNlbGVj
dGlvblRvcEZvckhpdFRlc3RpbmcoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkJv
dHRvbSgpIGNvbnN0OworICAgIExheW91dFVuaXQgdG9wV2l0aExlYWRpbmcoKSBjb25zdDsKKyAg
ICBMYXlvdXRVbml0IGJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3Q7CiAKICAgICBmbG9hdCB5KCkg
Y29uc3Q7CiAgICAgZmxvYXQgbG9naWNhbEhlaWdodCgpIGNvbnN0OwpAQCAtNjQsNiArNjYsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0hvcml6b250YWwoKSBjb25zdDsKIAogICAgIGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CisgICAgY29uc3QgUm9vdElu
bGluZUJveCogbGVnYWN5Um9vdElubGluZUJveCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAg
ZnJpZW5kIGNsYXNzIExpbmVJdGVyYXRvcjsKQEAgLTEyOCw3ICsxMzEsNyBAQCBpbmxpbmUgTGF5
b3V0VW5pdCBQYXRoTGluZTo6dG9wKCkgY29uc3QKIGlubGluZSBMYXlvdXRVbml0IFBhdGhMaW5l
Ojpib3R0b20oKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlh
bnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKLSAgICAgICAgcmV0dXJuIHBhdGgudG9wKCk7Cisg
ICAgICAgIHJldHVybiBwYXRoLmJvdHRvbSgpOwogICAgIH0pOwogfQogCkBAIC0xNTMsNiArMTU2
LDIwIEBAIGlubGluZSBMYXlvdXRVbml0IFBhdGhMaW5lOjpzZWxlY3Rpb25Cb3R0b20oKSBjb25z
dAogICAgIH0pOwogfQogCitpbmxpbmUgTGF5b3V0VW5pdCBQYXRoTGluZTo6dG9wV2l0aExlYWRp
bmcoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtd
KGNvbnN0IGF1dG8mIHBhdGgpIHsKKyAgICAgICAgcmV0dXJuIHBhdGgudG9wV2l0aExlYWRpbmco
KTsKKyAgICB9KTsKK30KKworaW5saW5lIExheW91dFVuaXQgUGF0aExpbmU6OmJvdHRvbVdpdGhM
ZWFkaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50
LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CisgICAgICAgIHJldHVybiBwYXRoLmJvdHRvbVdpdGhM
ZWFkaW5nKCk7CisgICAgfSk7Cit9CisKIGlubGluZSBmbG9hdCBQYXRoTGluZTo6eSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29uc3QgYXV0
byYgcGF0aCkgewpAQCAtMTgxLDYgKzE5OCwxMyBAQCBpbmxpbmUgY29uc3QgUmVuZGVyQmxvY2tG
bG93JiBQYXRoTGluZTo6Y29udGFpbmluZ0Jsb2NrKCkgY29uc3QKICAgICB9KTsKIH0KIAoraW5s
aW5lIGNvbnN0IFJvb3RJbmxpbmVCb3gqIFBhdGhMaW5lOjpsZWdhY3lSb290SW5saW5lQm94KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25z
dCBhdXRvJiBwYXRoKSB7CisgICAgICAgIHJldHVybiBwYXRoLmxlZ2FjeVJvb3RJbmxpbmVCb3go
KTsKKyAgICB9KTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQYXRoLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5l
SXRlcmF0b3JMZWdhY3lQYXRoLmgKaW5kZXggNTA4MWY5Y2M3MDMyLi5jOGI2ZGIzNzU5ODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVJdGVyYXRvckxlZ2FjeVBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQYXRoLmgKQEAg
LTQ5LDEyICs0OSwxNSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AoKSBj
b25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVjdGlvblRvcCgpOyB9CiAgICAgTGF5
b3V0VW5pdCBzZWxlY3Rpb25Ub3BGb3JIaXRUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9yb290
SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoUm9vdElubGluZUJveDo6Rm9ySGl0VGVzdGluZzo6WWVz
KTsgfQogICAgIExheW91dFVuaXQgc2VsZWN0aW9uQm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9y
b290SW5saW5lQm94LT5zZWxlY3Rpb25Cb3R0b20oKTsgfQorICAgIExheW91dFVuaXQgdG9wV2l0
aExlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxpbmVUb3BXaXRoTGVh
ZGluZygpOyB9CisgICAgTGF5b3V0VW5pdCBib3R0b21XaXRoTGVhZGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJvdHRvbVdpdGhMZWFkaW5nKCk7IH0KIAogICAgIGZs
b2F0IHkoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPnkoKTsgfQogICAgIGZsb2F0
IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmxvZ2ljYWxI
ZWlnaHQoKTsgfQogICAgIGJvb2wgaXNIb3Jpem9udGFsKCkgY29uc3QgeyByZXR1cm4gbV9yb290
SW5saW5lQm94LT5pc0hvcml6b250YWwoKTsgfQogCiAgICAgY29uc3QgUmVuZGVyQmxvY2tGbG93
JiBjb250YWluaW5nQmxvY2soKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPmJsb2Nr
RmxvdygpOyB9CisgICAgY29uc3QgUm9vdElubGluZUJveCogbGVnYWN5Um9vdElubGluZUJveCgp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveDsgfQogCiAgICAgdm9pZCB0cmF2ZXJzZU5l
eHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBhdGguaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVy
blBhdGguaAppbmRleCAwOGU3NDg4NDlhMGUuLmI0ZWIxMjczMzVjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJh
dG9yTW9kZXJuUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBhdGguaApAQCAtNTEsMTUgKzUxLDE5
IEBAIHB1YmxpYzoKIAogICAgIExheW91dFVuaXQgdG9wKCkgY29uc3QgeyByZXR1cm4gTGF5b3V0
VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLnJlY3QoKS55KCkpOyB9CiAgICAgTGF5b3V0VW5p
dCBib3R0b20oKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRSb3VuZChsaW5l
KCkucmVjdCgpLm1heFkoKSk7IH0KKyAgICAvLyBGSVhNRTogV2hhdCBzaG91bGQgdGhlc2UgcmVh
bGx5IGJlPwogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wKCkgY29uc3QgeyByZXR1cm4gdG9w
KCk7IH0KICAgICBMYXlvdXRVbml0IHNlbGVjdGlvblRvcEZvckhpdFRlc3RpbmcoKSBjb25zdCB7
IHJldHVybiB0b3AoKTsgfQogICAgIExheW91dFVuaXQgc2VsZWN0aW9uQm90dG9tKCkgY29uc3Qg
eyByZXR1cm4gYm90dG9tKCk7IH0KKyAgICBMYXlvdXRVbml0IHRvcFdpdGhMZWFkaW5nKCkgY29u
c3QgeyByZXR1cm4gdG9wKCk7IH0KKyAgICBMYXlvdXRVbml0IGJvdHRvbVdpdGhMZWFkaW5nKCkg
Y29uc3QgeyByZXR1cm4gYm90dG9tKCk7IH0KIAogICAgIGZsb2F0IHkoKSBjb25zdCB7IHJldHVy
biB0b3AoKTsgfQogICAgIGZsb2F0IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBsaW5l
KCkucmVjdCgpLmhlaWdodCgpOyB9CiAgICAgYm9vbCBpc0hvcml6b250YWwoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGNvbnRhaW5pbmdCbG9j
aygpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQ29udGVudC0+Y29udGFpbmluZ0Jsb2NrKCk7IH0K
KyAgICBjb25zdCBSb290SW5saW5lQm94KiBsZWdhY3lSb290SW5saW5lQm94KCkgY29uc3QgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdm9pZCB0cmF2ZXJzZU5leHQoKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
blJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKaW5kZXggNjg3MWVj
NGJlOTMyLi5hN2MyNjQ4NTM3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0
ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC0xNzAsNyArMTcwLDYgQEAgcHVibGljOgogCiAgICAgSW5s
aW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAxYmYzNWIyN2FlYzcu
LmM0OTZlNDZjZmNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKQEAgLTMzMDYsMTkgKzMzMDYsMTkgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OmNv
bnRhaW5zTm9uWmVyb0JpZGlMZXZlbCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1Q
b3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yQm94KElubGluZUJveCAqYm94LCBi
b29sIHN0YXJ0KSBjb25zdAorc3RhdGljIFBvc2l0aW9uIHBvc2l0aW9uRm9yUnVuKGNvbnN0IFJl
bmRlckJsb2NrRmxvdyYgZmxvdywgTGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yIHJ1biwg
Ym9vbCBzdGFydCkKIHsKLSAgICBpZiAoIWJveCkKKyAgICBpZiAoIXJ1bikKICAgICAgICAgcmV0
dXJuIFBvc2l0aW9uKCk7CiAKLSAgICBpZiAoIWJveC0+cmVuZGVyZXIoKS5ub25Qc2V1ZG9Ob2Rl
KCkpCi0gICAgICAgIHJldHVybiBtYWtlRGVwcmVjYXRlZExlZ2FjeVBvc2l0aW9uKG5vblBzZXVk
b0VsZW1lbnQoKSwgc3RhcnQgPyBjYXJldE1pbk9mZnNldCgpIDogY2FyZXRNYXhPZmZzZXQoKSk7
CisgICAgaWYgKCFydW4tPnJlbmRlcmVyKCkubm9uUHNldWRvTm9kZSgpKQorICAgICAgICByZXR1
cm4gbWFrZURlcHJlY2F0ZWRMZWdhY3lQb3NpdGlvbihmbG93Lm5vblBzZXVkb0VsZW1lbnQoKSwg
c3RhcnQgPyBmbG93LmNhcmV0TWluT2Zmc2V0KCkgOiBmbG93LmNhcmV0TWF4T2Zmc2V0KCkpOwog
Ci0gICAgaWYgKCFpczxJbmxpbmVUZXh0Qm94PigqYm94KSkKLSAgICAgICAgcmV0dXJuIG1ha2VE
ZXByZWNhdGVkTGVnYWN5UG9zaXRpb24oYm94LT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUoKSwg
c3RhcnQgPyBib3gtPnJlbmRlcmVyKCkuY2FyZXRNaW5PZmZzZXQoKSA6IGJveC0+cmVuZGVyZXIo
KS5jYXJldE1heE9mZnNldCgpKTsKKyAgICBpZiAoIWlzPExheW91dEludGVncmF0aW9uOjpUZXh0
UnVuSXRlcmF0b3I+KHJ1bikpCisgICAgICAgIHJldHVybiBtYWtlRGVwcmVjYXRlZExlZ2FjeVBv
c2l0aW9uKHJ1bi0+cmVuZGVyZXIoKS5ub25Qc2V1ZG9Ob2RlKCksIHN0YXJ0ID8gcnVuLT5yZW5k
ZXJlcigpLmNhcmV0TWluT2Zmc2V0KCkgOiBydW4tPnJlbmRlcmVyKCkuY2FyZXRNYXhPZmZzZXQo
KSk7CiAKLSAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4oKmJveCk7
Ci0gICAgcmV0dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRpb24odGV4dEJveC5yZW5kZXJl
cigpLm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyB0ZXh0Qm94LnN0YXJ0KCkgOiB0ZXh0Qm94LnN0
YXJ0KCkgKyB0ZXh0Qm94LmxlbigpKTsKKyAgICBhdXRvJiB0ZXh0UnVuID0gZG93bmNhc3Q8TGF5
b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcj4ocnVuKTsKKyAgICByZXR1cm4gbWFrZURl
cHJlY2F0ZWRMZWdhY3lQb3NpdGlvbih0ZXh0UnVuLT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUo
KSwgc3RhcnQgPyB0ZXh0UnVuLT5sb2NhbFN0YXJ0T2Zmc2V0KCkgOiB0ZXh0UnVuLT5sb2NhbEVu
ZE9mZnNldCgpKTsKIH0KIAogUmVuZGVyVGV4dCogUmVuZGVyQmxvY2tGbG93OjpmaW5kQ2xvc2Vz
dFRleHRBdEFic29sdXRlUG9pbnQoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQpCkBAIC0zMzkwLDg5
ICszMzkwLDg2IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9y
UG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiB7CiAgICAgQVNTRVJUKGNoaWxk
cmVuSW5saW5lKCkpOwogCi0gICAgZW5zdXJlTGluZUJveGVzKCk7CisgICAgYXV0byBmaXJzdExp
bmUgPSBMYXlvdXRJbnRlZ3JhdGlvbjo6Zmlyc3RMaW5lRm9yKCp0aGlzKTsKIAotICAgIGlmICgh
Zmlyc3RSb290Qm94KCkpCisgICAgaWYgKCFmaXJzdExpbmUpCiAgICAgICAgIHJldHVybiBjcmVh
dGVWaXNpYmxlUG9zaXRpb24oMCwgQWZmaW5pdHk6OkRvd25zdHJlYW0pOwogCiAgICAgYm9vbCBs
aW5lc0FyZUZsaXBwZWQgPSBzdHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKTsKICAg
ICBib29sIGJsb2Nrc0FyZUZsaXBwZWQgPSBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKCk7CiAKICAgICAvLyBsb29rIGZvciB0aGUgY2xvc2VzdCBsaW5lIGJveCBpbiB0aGUgcm9v
dCBib3ggd2hpY2ggaXMgYXQgdGhlIHBhc3NlZC1pbiB5IGNvb3JkaW5hdGUKLSAgICBJbmxpbmVC
b3gqIGNsb3Nlc3RCb3ggPSAwOwotICAgIFJvb3RJbmxpbmVCb3gqIGZpcnN0Um9vdEJveFdpdGhD
aGlsZHJlbiA9IDA7Ci0gICAgUm9vdElubGluZUJveCogbGFzdFJvb3RCb3hXaXRoQ2hpbGRyZW4g
PSAwOwotICAgIGZvciAoUm9vdElubGluZUJveCogcm9vdCA9IGZpcnN0Um9vdEJveCgpOyByb290
OyByb290ID0gcm9vdC0+bmV4dFJvb3RCb3goKSkgewotICAgICAgICBpZiAoZnJhZ21lbnQgJiYg
cm9vdC0+Y29udGFpbmluZ0ZyYWdtZW50KCkgIT0gZnJhZ21lbnQpCisgICAgTGF5b3V0SW50ZWdy
YXRpb246OlJ1bkl0ZXJhdG9yIGNsb3Nlc3RSdW47CisgICAgTGF5b3V0SW50ZWdyYXRpb246Okxp
bmVJdGVyYXRvciBmaXJzdExpbmVXaXRoQ2hpbGRyZW47CisgICAgTGF5b3V0SW50ZWdyYXRpb246
OkxpbmVJdGVyYXRvciBsYXN0TGluZVdpdGhDaGlsZHJlbjsKKyAgICBmb3IgKGF1dG8gbGluZSA9
IGZpcnN0TGluZTsgbGluZTsgbGluZS50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBpZiAoZnJh
Z21lbnQgJiYgbGluZS0+bGVnYWN5Um9vdElubGluZUJveCgpICYmIGxpbmUtPmxlZ2FjeVJvb3RJ
bmxpbmVCb3goKS0+Y29udGFpbmluZ0ZyYWdtZW50KCkgIT0gZnJhZ21lbnQpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIXJvb3QtPmZpcnN0TGVhZkRlc2NlbmRhbnQoKSkK
KyAgICAgICAgaWYgKCFsaW5lLmZpcnN0UnVuKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgaWYgKCFmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4pCi0gICAgICAgICAgICBmaXJzdFJv
b3RCb3hXaXRoQ2hpbGRyZW4gPSByb290OworICAgICAgICBpZiAoIWZpcnN0TGluZVdpdGhDaGls
ZHJlbikKKyAgICAgICAgICAgIGZpcnN0TGluZVdpdGhDaGlsZHJlbiA9IGxpbmU7CiAKLSAgICAg
ICAgaWYgKCFsaW5lc0FyZUZsaXBwZWQgJiYgcm9vdC0+aXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkg
JiYgKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpIDwgcm9vdC0+bGluZVRvcFdpdGhMZWFkaW5n
KCkKLSAgICAgICAgICAgIHx8IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29u
dGVudHMueSgpID09IHJvb3QtPmxpbmVUb3BXaXRoTGVhZGluZygpKSkpCisgICAgICAgIGlmICgh
bGluZXNBcmVGbGlwcGVkICYmIGxpbmUtPmxlZ2FjeVJvb3RJbmxpbmVCb3goKSAmJiBsaW5lLT5s
ZWdhY3lSb290SW5saW5lQm94KCktPmlzRmlyc3RBZnRlclBhZ2VCcmVhaygpCisgICAgICAgICAg
ICAmJiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPCBsaW5lLT50b3BXaXRoTGVhZGluZygp
IHx8IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGxp
bmUtPnRvcFdpdGhMZWFkaW5nKCkpKSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGxh
c3RSb290Qm94V2l0aENoaWxkcmVuID0gcm9vdDsKKyAgICAgICAgbGFzdExpbmVXaXRoQ2hpbGRy
ZW4gPSBsaW5lOwogCiAgICAgICAgIC8vIGNoZWNrIGlmIHRoaXMgcm9vdCBsaW5lIGJveCBpcyBs
b2NhdGVkIGF0IHRoaXMgeSBjb29yZGluYXRlCi0gICAgICAgIGlmIChwb2ludEluTG9naWNhbENv
bnRlbnRzLnkoKSA8IHJvb3QtPnNlbGVjdGlvbkJvdHRvbSgpIHx8IChibG9ja3NBcmVGbGlwcGVk
ICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IHJvb3QtPnNlbGVjdGlvbkJvdHRvbSgp
KSkgeworICAgICAgICBpZiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPCBsaW5lLT5zZWxl
Y3Rpb25Cb3R0b20oKSB8fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludEluTG9naWNhbENvbnRl
bnRzLnkoKSA9PSBsaW5lLT5zZWxlY3Rpb25Cb3R0b20oKSkpIHsKICAgICAgICAgICAgIGlmIChs
aW5lc0FyZUZsaXBwZWQpIHsKLSAgICAgICAgICAgICAgICBSb290SW5saW5lQm94KiBuZXh0Um9v
dEJveFdpdGhDaGlsZHJlbiA9IHJvb3QtPm5leHRSb290Qm94KCk7Ci0gICAgICAgICAgICAgICAg
d2hpbGUgKG5leHRSb290Qm94V2l0aENoaWxkcmVuICYmICFuZXh0Um9vdEJveFdpdGhDaGlsZHJl
bi0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpKQotICAgICAgICAgICAgICAgICAgICBuZXh0Um9vdEJv
eFdpdGhDaGlsZHJlbiA9IG5leHRSb290Qm94V2l0aENoaWxkcmVuLT5uZXh0Um9vdEJveCgpOwor
ICAgICAgICAgICAgICAgIGF1dG8gbmV4dExpbmVXaXRoQ2hpbGRyZW4gPSBsaW5lLm5leHQoKTsK
KyAgICAgICAgICAgICAgICB3aGlsZSAobmV4dExpbmVXaXRoQ2hpbGRyZW4gJiYgIW5leHRMaW5l
V2l0aENoaWxkcmVuLmZpcnN0UnVuKCkpCisgICAgICAgICAgICAgICAgICAgIG5leHRMaW5lV2l0
aENoaWxkcmVuLnRyYXZlcnNlTmV4dCgpOwogCi0gICAgICAgICAgICAgICAgaWYgKG5leHRSb290
Qm94V2l0aENoaWxkcmVuICYmIG5leHRSb290Qm94V2l0aENoaWxkcmVuLT5pc0ZpcnN0QWZ0ZXJQ
YWdlQnJlYWsoKSAmJiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPiBuZXh0Um9vdEJveFdp
dGhDaGlsZHJlbi0+bGluZVRvcFdpdGhMZWFkaW5nKCkKLSAgICAgICAgICAgICAgICAgICAgfHwg
KCFibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IG5leHRS
b290Qm94V2l0aENoaWxkcmVuLT5saW5lVG9wV2l0aExlYWRpbmcoKSkpKQorICAgICAgICAgICAg
ICAgIGlmIChuZXh0TGluZVdpdGhDaGlsZHJlbiAmJiBuZXh0TGluZVdpdGhDaGlsZHJlbi0+bGVn
YWN5Um9vdElubGluZUJveCgpICYmIG5leHRMaW5lV2l0aENoaWxkcmVuLT5sZWdhY3lSb290SW5s
aW5lQm94KCktPmlzRmlyc3RBZnRlclBhZ2VCcmVhaygpCisgICAgICAgICAgICAgICAgICAgICYm
IChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA+IG5leHRMaW5lV2l0aENoaWxkcmVuLT50b3BX
aXRoTGVhZGluZygpIHx8ICghYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludEluTG9naWNhbENvbnRl
bnRzLnkoKSA9PSBuZXh0TGluZVdpdGhDaGlsZHJlbi0+dG9wV2l0aExlYWRpbmcoKSkpKQogICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlm
IChhdXRvIGNsb3Nlc3RSdW4gPSBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yKHJvb3Qp
LmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKHBvaW50SW5Mb2dpY2FsQ29udGVudHMu
eCgpKSkKLSAgICAgICAgICAgICAgICBjbG9zZXN0Qm94ID0gY2xvc2VzdFJ1bi0+bGVnYWN5SW5s
aW5lQm94KCk7Ci0gICAgICAgICAgICBpZiAoY2xvc2VzdEJveCkKKyAgICAgICAgICAgIGNsb3Nl
c3RSdW4gPSBsaW5lLmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKHBvaW50SW5Mb2dp
Y2FsQ29udGVudHMueCgpKTsKKyAgICAgICAgICAgIGlmIChjbG9zZXN0UnVuKQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCiAgICAgYm9vbCBtb3ZlQ2FyZXRUb0Jv
dW5kYXJ5ID0gZnJhbWUoKS5lZGl0b3IoKS5iZWhhdmlvcigpLnNob3VsZE1vdmVDYXJldFRvSG9y
aXpvbnRhbEJvdW5kYXJ5V2hlblBhc3RUb3BPckJvdHRvbSgpOwogCi0gICAgaWYgKCFtb3ZlQ2Fy
ZXRUb0JvdW5kYXJ5ICYmICFjbG9zZXN0Qm94ICYmIGxhc3RSb290Qm94V2l0aENoaWxkcmVuKSB7
CisgICAgaWYgKCFtb3ZlQ2FyZXRUb0JvdW5kYXJ5ICYmICFjbG9zZXN0UnVuICYmIGxhc3RMaW5l
V2l0aENoaWxkcmVuKSB7CiAgICAgICAgIC8vIHkgY29vcmRpbmF0ZSBpcyBiZWxvdyBsYXN0IHJv
b3QgbGluZSBib3gsIHByZXRlbmQgd2UgaGl0IGl0Ci0gICAgICAgIGF1dG8gY2xvc2VzdFJ1biA9
IExheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3IobGFzdFJvb3RCb3hXaXRoQ2hpbGRyZW4p
LmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKHBvaW50SW5Mb2dpY2FsQ29udGVudHMu
eCgpKTsKLSAgICAgICAgY2xvc2VzdEJveCA9IGNsb3Nlc3RSdW4gPyBjbG9zZXN0UnVuLT5sZWdh
Y3lJbmxpbmVCb3goKSA6IG51bGxwdHI7CisgICAgICAgIGNsb3Nlc3RSdW4gPSBsYXN0TGluZVdp
dGhDaGlsZHJlbi5jbG9zZXN0UnVuRm9yTG9naWNhbExlZnRQb3NpdGlvbihwb2ludEluTG9naWNh
bENvbnRlbnRzLngoKSk7CiAgICAgfQogCi0gICAgaWYgKGNsb3Nlc3RCb3gpIHsKKyAgICBpZiAo
Y2xvc2VzdFJ1bikgewogICAgICAgICBpZiAobW92ZUNhcmV0VG9Cb3VuZGFyeSkgewotICAgICAg
ICAgICAgTGF5b3V0VW5pdCBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW5Ub3AgPSBzdGQ6Om1pbihm
aXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4tPnNlbGVjdGlvblRvcChSb290SW5saW5lQm94OjpGb3JI
aXRUZXN0aW5nOjpZZXMpLCBMYXlvdXRVbml0KGZpcnN0Um9vdEJveFdpdGhDaGlsZHJlbi0+bG9n
aWNhbFRvcCgpKSk7Ci0gICAgICAgICAgICBpZiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkg
PCBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW5Ub3AKLSAgICAgICAgICAgICAgICB8fCAoYmxvY2tz
QXJlRmxpcHBlZCAmJiBwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA9PSBmaXJzdFJvb3RCb3hX
aXRoQ2hpbGRyZW5Ub3ApKSB7Ci0gICAgICAgICAgICAgICAgSW5saW5lQm94KiBib3ggPSBmaXJz
dFJvb3RCb3hXaXRoQ2hpbGRyZW4tPmZpcnN0TGVhZkRlc2NlbmRhbnQoKTsKLSAgICAgICAgICAg
ICAgICBpZiAoYm94LT5pc0xpbmVCcmVhaygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChJ
bmxpbmVCb3gqIG5ld0JveCA9IGJveC0+bmV4dExlYWZPbkxpbmVJZ25vcmluZ0xpbmVCcmVhaygp
KQotICAgICAgICAgICAgICAgICAgICAgICAgYm94ID0gbmV3Qm94OworICAgICAgICAgICAgTGF5
b3V0VW5pdCBmaXJzdExpbmVXaXRoQ2hpbGRyZW5Ub3AgPSBzdGQ6Om1pbihmaXJzdExpbmVXaXRo
Q2hpbGRyZW4tPnNlbGVjdGlvblRvcEZvckhpdFRlc3RpbmcoKSwgTGF5b3V0VW5pdChmaXJzdExp
bmVXaXRoQ2hpbGRyZW4tPnRvcCgpKSk7CisgICAgICAgICAgICBpZiAocG9pbnRJbkxvZ2ljYWxD
b250ZW50cy55KCkgPCBmaXJzdExpbmVXaXRoQ2hpbGRyZW5Ub3AKKyAgICAgICAgICAgICAgICB8
fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA9PSBmaXJz
dExpbmVXaXRoQ2hpbGRyZW5Ub3ApKSB7CisgICAgICAgICAgICAgICAgYXV0byBydW4gPSBmaXJz
dExpbmVXaXRoQ2hpbGRyZW4uZmlyc3RSdW4oKTsKKyAgICAgICAgICAgICAgICBpZiAocnVuLT5p
c0xpbmVCcmVhaygpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIG5leHQgPSBydW4u
bmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBy
dW4gPSBuZXh0OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvLyB5IGNvb3Jk
aW5hdGUgaXMgYWJvdmUgZmlyc3Qgcm9vdCBsaW5lIGJveCwgc28gcmV0dXJuIHRoZSBzdGFydCBv
ZiB0aGUgZmlyc3QKLSAgICAgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25Gb3JCb3goYm94LCB0
cnVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25Gb3JSdW4oKnRoaXMsIHJ1biwg
dHJ1ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBwYXNzIHRoZSBi
b3ggYSB0b3AgcG9zaXRpb24gdGhhdCBpcyBpbnNpZGUgaXQKLSAgICAgICAgTGF5b3V0UG9pbnQg
cG9pbnQocG9pbnRJbkxvZ2ljYWxDb250ZW50cy54KCksIGNsb3Nlc3RCb3gtPnJvb3QoKS5ibG9j
a0RpcmVjdGlvblBvaW50SW5MaW5lKCkpOworICAgICAgICBMYXlvdXRQb2ludCBwb2ludChwb2lu
dEluTG9naWNhbENvbnRlbnRzLngoKSwgY2xvc2VzdFJ1bi5saW5lKCktPmJsb2NrRGlyZWN0aW9u
UG9pbnRJbkxpbmUoKSk7CiAgICAgICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkK
ICAgICAgICAgICAgIHBvaW50ID0gcG9pbnQudHJhbnNwb3NlZFBvaW50KCk7Ci0gICAgICAgIGlm
IChjbG9zZXN0Qm94LT5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSkKLSAgICAgICAgICAgIHJldHVy
biBwb3NpdGlvbkZvclBvaW50UmVzcGVjdGluZ0VkaXRpbmdCb3VuZGFyaWVzKCp0aGlzLCBkb3du
Y2FzdDxSZW5kZXJCb3g+KGNsb3Nlc3RCb3gtPnJlbmRlcmVyKCkpLCBwb2ludCk7Ci0gICAgICAg
IHJldHVybiBjbG9zZXN0Qm94LT5yZW5kZXJlcigpLnBvc2l0aW9uRm9yUG9pbnQocG9pbnQsIG51
bGxwdHIpOworICAgICAgICBpZiAoY2xvc2VzdFJ1bi0+cmVuZGVyZXIoKS5pc1JlcGxhY2VkKCkp
CisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25Gb3JQb2ludFJlc3BlY3RpbmdFZGl0aW5nQm91
bmRhcmllcygqdGhpcywgY29uc3RfY2FzdDxSZW5kZXJCb3gmPihkb3duY2FzdDxSZW5kZXJCb3g+
KGNsb3Nlc3RSdW4tPnJlbmRlcmVyKCkpKSwgcG9pbnQpOworICAgICAgICByZXR1cm4gY29uc3Rf
Y2FzdDxSZW5kZXJPYmplY3QmPihjbG9zZXN0UnVuLT5yZW5kZXJlcigpKS5wb3NpdGlvbkZvclBv
aW50KHBvaW50LCBudWxscHRyKTsKICAgICB9CiAKLSAgICBpZiAobGFzdFJvb3RCb3hXaXRoQ2hp
bGRyZW4pIHsKKyAgICBpZiAobGFzdExpbmVXaXRoQ2hpbGRyZW4pIHsKICAgICAgICAgLy8gV2Ug
aGl0IHRoaXMgY2FzZSBmb3IgTWFjIGJlaGF2aW9yIHdoZW4gdGhlIFkgY29vcmRpbmF0ZSBpcyBi
ZWxvdyB0aGUgbGFzdCBib3guCiAgICAgICAgIEFTU0VSVChtb3ZlQ2FyZXRUb0JvdW5kYXJ5KTsK
LSAgICAgICAgSW5saW5lQm94KiBsb2dpY2FsbHlMYXN0Qm94OwotICAgICAgICBpZiAobGFzdFJv
b3RCb3hXaXRoQ2hpbGRyZW4tPmdldExvZ2ljYWxFbmRCb3hXaXRoTm9kZShsb2dpY2FsbHlMYXN0
Qm94KSkKLSAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvckJveChsb2dpY2FsbHlMYXN0Qm94
LCBmYWxzZSk7CisgICAgICAgIGlmIChhdXRvIGxvZ2ljYWxseUxhc3RSdW4gPSBsYXN0TGluZVdp
dGhDaGlsZHJlbi5sb2dpY2FsRW5kUnVuV2l0aE5vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiBw
b3NpdGlvbkZvclJ1bigqdGhpcywgbG9naWNhbGx5TGFzdFJ1biwgZmFsc2UpOwogICAgIH0KIAog
ICAgIC8vIENhbid0IHJlYWNoIHRoaXMuIFdlIGhhdmUgYSByb290IGxpbmUgYm94LCBidXQgaXQg
aGFzIG5vIGtpZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgK
aW5kZXggMTU2MmRhNmExOGY1Li4zZDliNTFmMjg4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKQEAgLTUyNyw3ICs1MjcsNiBAQCBwcml2YXRlOgogICAg
IEdhcFJlY3RzIGlubGluZVNlbGVjdGlvbkdhcHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29u
c3QgTGF5b3V0UG9pbnQmIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGNvbnN0IExheW91dFNp
emUmIG9mZnNldEZyb21Sb290QmxvY2ssCiAgICAgICAgIExheW91dFVuaXQmIGxhc3RMb2dpY2Fs
VG9wLCBMYXlvdXRVbml0JiBsYXN0TG9naWNhbExlZnQsIExheW91dFVuaXQmIGxhc3RMb2dpY2Fs
UmlnaHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmLCBjb25zdCBQYWludElu
Zm8qKSBvdmVycmlkZTsKICAgICAKLSAgICBQb3NpdGlvbiBwb3NpdGlvbkZvckJveChJbmxpbmVC
b3gqLCBib29sIHN0YXJ0ID0gdHJ1ZSkgY29uc3Q7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvc2l0
aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5M
b2dpY2FsQ29udGVudHMsIGNvbnN0IFJlbmRlckZyYWdtZW50Q29udGFpbmVyKikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBhZGRGb2N1c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKFZlY3RvcjxMYXlv
dXRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Kikgb3ZlcnJpZGU7CiAK
</data>
<flag name="review"
          id="429106"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412641</attachid>
            <date>2020-10-29 06:39:03 -0700</date>
            <delta_ts>2020-10-29 06:40:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>lfc-positionForPointWithInlineChildren-3.patch</filename>
            <type>text/plain</type>
            <size>19841</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NDUxYTI4YjQ1YTAuLmI0OTNlYzFiMTE1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMyIEBACisyMDIwLTEwLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlv
bkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuIHNob3VsZCB1c2UgaXRlcmF0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI4MworCisgICAgICAg
IFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICBSZWR1Y2UgSW5saW5lQm94IGFj
Y2VzcyBhbmQgZWxpbWluYXRlIG9uZSBlbnN1cmVMaW5lQm94ZXMoKSBjYWxsLgorCisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aExpbmU6OnRvcFdpdGhMZWFk
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoTGlu
ZTo6Ym90dG9tV2l0aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OlBhdGhMaW5lOjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQ
YXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9y
TGVnYWN5UGF0aDo6dG9wV2l0aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmJvdHRvbVdpdGhMZWFkaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0
b3JMZWdhY3lQYXRoOjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yTW9kZXJu
UGF0aDo6dG9wV2l0aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmJvdHRvbVdpdGhMZWFkaW5nIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3JNb2Rl
cm5QYXRoOjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvck1vZGVyblBhdGg6Omxl
Z2FjeUlubGluZUJveCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3NpdGlvbkZvclJ1bik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlvbkZvckJveCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oOgorCiAy
MDIwLTEwLTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb25jdXJyZW50IGRpc3BsYXkgbGlzdHNdIEFkZCBhbHRlcm5hdGUgdmVyc2lvbnMgb2Yg
ZXhpc3RpbmcgZGlzcGxheSBsaXN0IGl0ZW1zIHRoYXQgb25seSBjb250YWluIGlubGluZSBkYXRh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcAppbmRleCBkMzM3
MGQzZWI5ZDIuLjExYmM4YzA1MmU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9SZW5kZXJlZFBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRl
cmVkUG9zaXRpb24uY3BwCkBAIC04Niw3ICs4Niw3IEBAIFJlbmRlcmVkUG9zaXRpb246OlJlbmRl
cmVkUG9zaXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBBZmZpbml0eSBhZmZpbml0eSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFJlbW92ZS4KLSAgICBwb3NpdGlvbi5l
bnN1cmVMaW5lQm94ZXMoKTsKKy8vICAgIHBvc2l0aW9uLmVuc3VyZUxpbmVCb3hlcygpOwogCiAg
ICAgYXV0byBydW5BbmRPZmZzZXQgPSBwb3NpdGlvbi5pbmxpbmVSdW5BbmRPZmZzZXQoYWZmaW5p
dHkpOwogICAgIG1fcnVuID0gcnVuQW5kT2Zmc2V0LnJ1bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGlu
ZUl0ZXJhdG9yLmgKaW5kZXggMjQyMTZlMTZhOWYyLi4yNmJjYjNkM2M2OWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJ
dGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVJdGVyYXRvci5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBM
YXlvdXRVbml0IHNlbGVjdGlvblRvcCgpIGNvbnN0OwogICAgIExheW91dFVuaXQgc2VsZWN0aW9u
VG9wRm9ySGl0VGVzdGluZygpIGNvbnN0OwogICAgIExheW91dFVuaXQgc2VsZWN0aW9uQm90dG9t
KCkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCB0b3BXaXRoTGVhZGluZygpIGNvbnN0OworICAgIExh
eW91dFVuaXQgYm90dG9tV2l0aExlYWRpbmcoKSBjb25zdDsKIAogICAgIGZsb2F0IHkoKSBjb25z
dDsKICAgICBmbG9hdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CkBAIC02NCw2ICs2Niw3IEBAIHB1
YmxpYzoKICAgICBib29sIGlzSG9yaXpvbnRhbCgpIGNvbnN0OwogCiAgICAgY29uc3QgUmVuZGVy
QmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBjb25zdDsKKyAgICBjb25zdCBSb290SW5saW5l
Qm94KiBsZWdhY3lSb290SW5saW5lQm94KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICBmcmll
bmQgY2xhc3MgTGluZUl0ZXJhdG9yOwpAQCAtMTI4LDcgKzEzMSw3IEBAIGlubGluZSBMYXlvdXRV
bml0IFBhdGhMaW5lOjp0b3AoKSBjb25zdAogaW5saW5lIExheW91dFVuaXQgUGF0aExpbmU6OmJv
dHRvbSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwg
W10oY29uc3QgYXV0byYgcGF0aCkgewotICAgICAgICByZXR1cm4gcGF0aC50b3AoKTsKKyAgICAg
ICAgcmV0dXJuIHBhdGguYm90dG9tKCk7CiAgICAgfSk7CiB9CiAKQEAgLTE1Myw2ICsxNTYsMjAg
QEAgaW5saW5lIExheW91dFVuaXQgUGF0aExpbmU6OnNlbGVjdGlvbkJvdHRvbSgpIGNvbnN0CiAg
ICAgfSk7CiB9CiAKK2lubGluZSBMYXlvdXRVbml0IFBhdGhMaW5lOjp0b3BXaXRoTGVhZGluZygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oY29u
c3QgYXV0byYgcGF0aCkgeworICAgICAgICByZXR1cm4gcGF0aC50b3BXaXRoTGVhZGluZygpOwor
ICAgIH0pOworfQorCitpbmxpbmUgTGF5b3V0VW5pdCBQYXRoTGluZTo6Ym90dG9tV2l0aExlYWRp
bmcoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtd
KGNvbnN0IGF1dG8mIHBhdGgpIHsKKyAgICAgICAgcmV0dXJuIHBhdGguYm90dG9tV2l0aExlYWRp
bmcoKTsKKyAgICB9KTsKK30KKwogaW5saW5lIGZsb2F0IFBhdGhMaW5lOjp5KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBw
YXRoKSB7CkBAIC0xODEsNiArMTk4LDEzIEBAIGlubGluZSBjb25zdCBSZW5kZXJCbG9ja0Zsb3cm
IFBhdGhMaW5lOjpjb250YWluaW5nQmxvY2soKSBjb25zdAogICAgIH0pOwogfQogCitpbmxpbmUg
Y29uc3QgUm9vdElubGluZUJveCogUGF0aExpbmU6OmxlZ2FjeVJvb3RJbmxpbmVCb3goKSBjb25z
dAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1
dG8mIHBhdGgpIHsKKyAgICAgICAgcmV0dXJuIHBhdGgubGVnYWN5Um9vdElubGluZUJveCgpOwor
ICAgIH0pOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvckxlZ2FjeVBhdGguaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVy
YXRvckxlZ2FjeVBhdGguaAppbmRleCA1MDgxZjljYzcwMzIuLmM4YjZkYjM3NTk4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUl0ZXJhdG9yTGVnYWN5UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvckxlZ2FjeVBhdGguaApAQCAtNDks
MTIgKzQ5LDE1IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvblRvcCgpIGNvbnN0
IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+c2VsZWN0aW9uVG9wKCk7IH0KICAgICBMYXlvdXRV
bml0IHNlbGVjdGlvblRvcEZvckhpdFRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPnNlbGVjdGlvblRvcChSb290SW5saW5lQm94OjpGb3JIaXRUZXN0aW5nOjpZZXMpOyB9
CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20oKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJ
bmxpbmVCb3gtPnNlbGVjdGlvbkJvdHRvbSgpOyB9CisgICAgTGF5b3V0VW5pdCB0b3BXaXRoTGVh
ZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZVRvcFdpdGhMZWFkaW5n
KCk7IH0KKyAgICBMYXlvdXRVbml0IGJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9yb290SW5saW5lQm94LT5saW5lQm90dG9tV2l0aExlYWRpbmcoKTsgfQogCiAgICAgZmxvYXQg
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+eSgpOyB9CiAgICAgZmxvYXQgbG9n
aWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bG9naWNhbEhlaWdo
dCgpOyB9CiAgICAgYm9vbCBpc0hvcml6b250YWwoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxp
bmVCb3gtPmlzSG9yaXpvbnRhbCgpOyB9CiAKICAgICBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIGNv
bnRhaW5pbmdCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+YmxvY2tGbG93
KCk7IH0KKyAgICBjb25zdCBSb290SW5saW5lQm94KiBsZWdhY3lSb290SW5saW5lQm94KCkgY29u
c3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94OyB9CiAKICAgICB2b2lkIHRyYXZlcnNlTmV4dCgp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yTW9kZXJuUGF0
aC5oCmluZGV4IDA4ZTc0ODg0OWEwZS4uYjRlYjEyNzMzNWNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JN
b2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uTGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC01MSwxNSArNTEsMTkgQEAg
cHVibGljOgogCiAgICAgTGF5b3V0VW5pdCB0b3AoKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0
Ojpmcm9tRmxvYXRSb3VuZChsaW5lKCkucmVjdCgpLnkoKSk7IH0KICAgICBMYXlvdXRVbml0IGJv
dHRvbSgpIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdFJvdW5kKGxpbmUoKS5y
ZWN0KCkubWF4WSgpKTsgfQorICAgIC8vIEZJWE1FOiBXaGF0IHNob3VsZCB0aGVzZSByZWFsbHkg
YmU/CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AoKSBjb25zdCB7IHJldHVybiB0b3AoKTsg
fQogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wRm9ySGl0VGVzdGluZygpIGNvbnN0IHsgcmV0
dXJuIHRvcCgpOyB9CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20oKSBjb25zdCB7IHJl
dHVybiBib3R0b20oKTsgfQorICAgIExheW91dFVuaXQgdG9wV2l0aExlYWRpbmcoKSBjb25zdCB7
IHJldHVybiB0b3AoKTsgfQorICAgIExheW91dFVuaXQgYm90dG9tV2l0aExlYWRpbmcoKSBjb25z
dCB7IHJldHVybiBib3R0b20oKTsgfQogCiAgICAgZmxvYXQgeSgpIGNvbnN0IHsgcmV0dXJuIHRv
cCgpOyB9CiAgICAgZmxvYXQgbG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxpbmUoKS5y
ZWN0KCkuaGVpZ2h0KCk7IH0KICAgICBib29sIGlzSG9yaXpvbnRhbCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmxpbmVDb250ZW50LT5jb250YWluaW5nQmxvY2soKTsgfQorICAg
IGNvbnN0IFJvb3RJbmxpbmVCb3gqIGxlZ2FjeVJvb3RJbmxpbmVCb3goKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAKICAgICB2b2lkIHRyYXZlcnNlTmV4dCgpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3JNb2Rlcm5QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaAppbmRleCA2ODcxZWM0YmU5
MzIuLmE3YzI2NDg1MzcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0
b3JNb2Rlcm5QYXRoLmgKQEAgLTE3MCw3ICsxNzAsNiBAQCBwdWJsaWM6CiAKICAgICBJbmxpbmVC
b3gqIGxlZ2FjeUlubGluZUJveCgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDFiZjM1YjI3YWVjNy4uN2Vl
ZDcxMTFhYzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcApAQCAtMzMwNiwxOSArMzMwNiwxOSBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6Y29udGFp
bnNOb25aZXJvQmlkaUxldmVsKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBvc2l0
aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JCb3goSW5saW5lQm94ICpib3gsIGJvb2wg
c3RhcnQpIGNvbnN0CitzdGF0aWMgUG9zaXRpb24gcG9zaXRpb25Gb3JSdW4oY29uc3QgUmVuZGVy
QmxvY2tGbG93JiBmbG93LCBMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3IgcnVuLCBib29s
IHN0YXJ0KQogewotICAgIGlmICghYm94KQorICAgIGlmICghcnVuKQogICAgICAgICByZXR1cm4g
UG9zaXRpb24oKTsKIAotICAgIGlmICghYm94LT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUoKSkK
LSAgICAgICAgcmV0dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRpb24obm9uUHNldWRvRWxl
bWVudCgpLCBzdGFydCA/IGNhcmV0TWluT2Zmc2V0KCkgOiBjYXJldE1heE9mZnNldCgpKTsKKyAg
ICBpZiAoIXJ1bi0+cmVuZGVyZXIoKS5ub25Qc2V1ZG9Ob2RlKCkpCisgICAgICAgIHJldHVybiBt
YWtlRGVwcmVjYXRlZExlZ2FjeVBvc2l0aW9uKGZsb3cubm9uUHNldWRvRWxlbWVudCgpLCBzdGFy
dCA/IGZsb3cuY2FyZXRNaW5PZmZzZXQoKSA6IGZsb3cuY2FyZXRNYXhPZmZzZXQoKSk7CiAKLSAg
ICBpZiAoIWlzPElubGluZVRleHRCb3g+KCpib3gpKQotICAgICAgICByZXR1cm4gbWFrZURlcHJl
Y2F0ZWRMZWdhY3lQb3NpdGlvbihib3gtPnJlbmRlcmVyKCkubm9uUHNldWRvTm9kZSgpLCBzdGFy
dCA/IGJveC0+cmVuZGVyZXIoKS5jYXJldE1pbk9mZnNldCgpIDogYm94LT5yZW5kZXJlcigpLmNh
cmV0TWF4T2Zmc2V0KCkpOworICAgIGlmICghaXM8TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5J
dGVyYXRvcj4ocnVuKSkKKyAgICAgICAgcmV0dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRp
b24ocnVuLT5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyBydW4tPnJlbmRlcmVy
KCkuY2FyZXRNaW5PZmZzZXQoKSA6IHJ1bi0+cmVuZGVyZXIoKS5jYXJldE1heE9mZnNldCgpKTsK
IAotICAgIGF1dG8mIHRleHRCb3ggPSBkb3duY2FzdDxJbmxpbmVUZXh0Qm94PigqYm94KTsKLSAg
ICByZXR1cm4gbWFrZURlcHJlY2F0ZWRMZWdhY3lQb3NpdGlvbih0ZXh0Qm94LnJlbmRlcmVyKCku
bm9uUHNldWRvTm9kZSgpLCBzdGFydCA/IHRleHRCb3guc3RhcnQoKSA6IHRleHRCb3guc3RhcnQo
KSArIHRleHRCb3gubGVuKCkpOworICAgIGF1dG8mIHRleHRSdW4gPSBkb3duY2FzdDxMYXlvdXRJ
bnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yPihydW4pOworICAgIHJldHVybiBtYWtlRGVwcmVj
YXRlZExlZ2FjeVBvc2l0aW9uKHRleHRSdW4tPnJlbmRlcmVyKCkubm9uUHNldWRvTm9kZSgpLCBz
dGFydCA/IHRleHRSdW4tPmxvY2FsU3RhcnRPZmZzZXQoKSA6IHRleHRSdW4tPmxvY2FsRW5kT2Zm
c2V0KCkpOwogfQogCiBSZW5kZXJUZXh0KiBSZW5kZXJCbG9ja0Zsb3c6OmZpbmRDbG9zZXN0VGV4
dEF0QWJzb2x1dGVQb2ludChjb25zdCBGbG9hdFBvaW50JiBwb2ludCkKQEAgLTMzOTAsODkgKzMz
OTAsODYgQEAgVmlzaWJsZVBvc2l0aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JQb2lu
dFdpdGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXQKIHsKICAgICBBU1NFUlQoY2hpbGRyZW5J
bmxpbmUoKSk7CiAKLSAgICBlbnN1cmVMaW5lQm94ZXMoKTsKKyAgICBhdXRvIGZpcnN0TGluZSA9
IExheW91dEludGVncmF0aW9uOjpmaXJzdExpbmVGb3IoKnRoaXMpOwogCi0gICAgaWYgKCFmaXJz
dFJvb3RCb3goKSkKKyAgICBpZiAoIWZpcnN0TGluZSkKICAgICAgICAgcmV0dXJuIGNyZWF0ZVZp
c2libGVQb3NpdGlvbigwLCBBZmZpbml0eTo6RG93bnN0cmVhbSk7CiAKICAgICBib29sIGxpbmVz
QXJlRmxpcHBlZCA9IHN0eWxlKCkuaXNGbGlwcGVkTGluZXNXcml0aW5nTW9kZSgpOwogICAgIGJv
b2wgYmxvY2tzQXJlRmxpcHBlZCA9IHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUo
KTsKIAogICAgIC8vIGxvb2sgZm9yIHRoZSBjbG9zZXN0IGxpbmUgYm94IGluIHRoZSByb290IGJv
eCB3aGljaCBpcyBhdCB0aGUgcGFzc2VkLWluIHkgY29vcmRpbmF0ZQotICAgIElubGluZUJveCog
Y2xvc2VzdEJveCA9IDA7Ci0gICAgUm9vdElubGluZUJveCogZmlyc3RSb290Qm94V2l0aENoaWxk
cmVuID0gMDsKLSAgICBSb290SW5saW5lQm94KiBsYXN0Um9vdEJveFdpdGhDaGlsZHJlbiA9IDA7
Ci0gICAgZm9yIChSb290SW5saW5lQm94KiByb290ID0gZmlyc3RSb290Qm94KCk7IHJvb3Q7IHJv
b3QgPSByb290LT5uZXh0Um9vdEJveCgpKSB7Ci0gICAgICAgIGlmIChmcmFnbWVudCAmJiByb290
LT5jb250YWluaW5nRnJhZ21lbnQoKSAhPSBmcmFnbWVudCkKKyAgICBMYXlvdXRJbnRlZ3JhdGlv
bjo6UnVuSXRlcmF0b3IgY2xvc2VzdFJ1bjsKKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0
ZXJhdG9yIGZpcnN0TGluZVdpdGhDaGlsZHJlbjsKKyAgICBMYXlvdXRJbnRlZ3JhdGlvbjo6TGlu
ZUl0ZXJhdG9yIGxhc3RMaW5lV2l0aENoaWxkcmVuOworICAgIGZvciAoYXV0byBsaW5lID0gZmly
c3RMaW5lOyBsaW5lOyBsaW5lLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChmcmFnbWVu
dCAmJiBsaW5lLT5sZWdhY3lSb290SW5saW5lQm94KCkgJiYgbGluZS0+bGVnYWN5Um9vdElubGlu
ZUJveCgpLT5jb250YWluaW5nRnJhZ21lbnQoKSAhPSBmcmFnbWVudCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIGlmICghcm9vdC0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpKQorICAg
ICAgICBpZiAoIWxpbmUuZmlyc3RSdW4oKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBpZiAoIWZpcnN0Um9vdEJveFdpdGhDaGlsZHJlbikKLSAgICAgICAgICAgIGZpcnN0Um9vdEJv
eFdpdGhDaGlsZHJlbiA9IHJvb3Q7CisgICAgICAgIGlmICghZmlyc3RMaW5lV2l0aENoaWxkcmVu
KQorICAgICAgICAgICAgZmlyc3RMaW5lV2l0aENoaWxkcmVuID0gbGluZTsKIAotICAgICAgICBp
ZiAoIWxpbmVzQXJlRmxpcHBlZCAmJiByb290LT5pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoKSAmJiAo
cG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPCByb290LT5saW5lVG9wV2l0aExlYWRpbmcoKQot
ICAgICAgICAgICAgfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJbkxvZ2ljYWxDb250ZW50
cy55KCkgPT0gcm9vdC0+bGluZVRvcFdpdGhMZWFkaW5nKCkpKSkKKyAgICAgICAgaWYgKCFsaW5l
c0FyZUZsaXBwZWQgJiYgbGluZS0+bGVnYWN5Um9vdElubGluZUJveCgpICYmIGxpbmUtPmxlZ2Fj
eVJvb3RJbmxpbmVCb3goKS0+aXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkKKyAgICAgICAgICAgICYm
IChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGxpbmUtPnRvcFdpdGhMZWFkaW5nKCkgfHwg
KGJsb2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPT0gbGluZS0+
dG9wV2l0aExlYWRpbmcoKSkpKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgbGFzdFJv
b3RCb3hXaXRoQ2hpbGRyZW4gPSByb290OworICAgICAgICBsYXN0TGluZVdpdGhDaGlsZHJlbiA9
IGxpbmU7CiAKICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyByb290IGxpbmUgYm94IGlzIGxvY2F0
ZWQgYXQgdGhpcyB5IGNvb3JkaW5hdGUKLSAgICAgICAgaWYgKHBvaW50SW5Mb2dpY2FsQ29udGVu
dHMueSgpIDwgcm9vdC0+c2VsZWN0aW9uQm90dG9tKCkgfHwgKGJsb2Nrc0FyZUZsaXBwZWQgJiYg
cG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPT0gcm9vdC0+c2VsZWN0aW9uQm90dG9tKCkpKSB7
CisgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGxpbmUtPnNlbGVjdGlv
bkJvdHRvbSgpIHx8IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMu
eSgpID09IGxpbmUtPnNlbGVjdGlvbkJvdHRvbSgpKSkgewogICAgICAgICAgICAgaWYgKGxpbmVz
QXJlRmxpcHBlZCkgewotICAgICAgICAgICAgICAgIFJvb3RJbmxpbmVCb3gqIG5leHRSb290Qm94
V2l0aENoaWxkcmVuID0gcm9vdC0+bmV4dFJvb3RCb3goKTsKLSAgICAgICAgICAgICAgICB3aGls
ZSAobmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4gJiYgIW5leHRSb290Qm94V2l0aENoaWxkcmVuLT5m
aXJzdExlYWZEZXNjZW5kYW50KCkpCi0gICAgICAgICAgICAgICAgICAgIG5leHRSb290Qm94V2l0
aENoaWxkcmVuID0gbmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4tPm5leHRSb290Qm94KCk7CisgICAg
ICAgICAgICAgICAgYXV0byBuZXh0TGluZVdpdGhDaGlsZHJlbiA9IGxpbmUubmV4dCgpOworICAg
ICAgICAgICAgICAgIHdoaWxlIChuZXh0TGluZVdpdGhDaGlsZHJlbiAmJiAhbmV4dExpbmVXaXRo
Q2hpbGRyZW4uZmlyc3RSdW4oKSkKKyAgICAgICAgICAgICAgICAgICAgbmV4dExpbmVXaXRoQ2hp
bGRyZW4udHJhdmVyc2VOZXh0KCk7CiAKLSAgICAgICAgICAgICAgICBpZiAobmV4dFJvb3RCb3hX
aXRoQ2hpbGRyZW4gJiYgbmV4dFJvb3RCb3hXaXRoQ2hpbGRyZW4tPmlzRmlyc3RBZnRlclBhZ2VC
cmVhaygpICYmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA+IG5leHRSb290Qm94V2l0aENo
aWxkcmVuLT5saW5lVG9wV2l0aExlYWRpbmcoKQotICAgICAgICAgICAgICAgICAgICB8fCAoIWJs
b2Nrc0FyZUZsaXBwZWQgJiYgcG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPT0gbmV4dFJvb3RC
b3hXaXRoQ2hpbGRyZW4tPmxpbmVUb3BXaXRoTGVhZGluZygpKSkpCisgICAgICAgICAgICAgICAg
aWYgKG5leHRMaW5lV2l0aENoaWxkcmVuICYmIG5leHRMaW5lV2l0aENoaWxkcmVuLT5sZWdhY3lS
b290SW5saW5lQm94KCkgJiYgbmV4dExpbmVXaXRoQ2hpbGRyZW4tPmxlZ2FjeVJvb3RJbmxpbmVC
b3goKS0+aXNGaXJzdEFmdGVyUGFnZUJyZWFrKCkKKyAgICAgICAgICAgICAgICAgICAgJiYgKHBv
aW50SW5Mb2dpY2FsQ29udGVudHMueSgpID4gbmV4dExpbmVXaXRoQ2hpbGRyZW4tPnRvcFdpdGhM
ZWFkaW5nKCkgfHwgKCFibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMu
eSgpID09IG5leHRMaW5lV2l0aENoaWxkcmVuLT50b3BXaXRoTGVhZGluZygpKSkpCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGF1
dG8gY2xvc2VzdFJ1biA9IExheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3Iocm9vdCkuY2xv
c2VzdFJ1bkZvckxvZ2ljYWxMZWZ0UG9zaXRpb24ocG9pbnRJbkxvZ2ljYWxDb250ZW50cy54KCkp
KQotICAgICAgICAgICAgICAgIGNsb3Nlc3RCb3ggPSBjbG9zZXN0UnVuLT5sZWdhY3lJbmxpbmVC
b3goKTsKLSAgICAgICAgICAgIGlmIChjbG9zZXN0Qm94KQorICAgICAgICAgICAgY2xvc2VzdFJ1
biA9IGxpbmUuY2xvc2VzdFJ1bkZvckxvZ2ljYWxMZWZ0UG9zaXRpb24ocG9pbnRJbkxvZ2ljYWxD
b250ZW50cy54KCkpOworICAgICAgICAgICAgaWYgKGNsb3Nlc3RSdW4pCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBib29sIG1vdmVDYXJldFRvQm91bmRh
cnkgPSBmcmFtZSgpLmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkTW92ZUNhcmV0VG9Ib3Jpem9u
dGFsQm91bmRhcnlXaGVuUGFzdFRvcE9yQm90dG9tKCk7CiAKLSAgICBpZiAoIW1vdmVDYXJldFRv
Qm91bmRhcnkgJiYgIWNsb3Nlc3RCb3ggJiYgbGFzdFJvb3RCb3hXaXRoQ2hpbGRyZW4pIHsKKyAg
ICBpZiAoIW1vdmVDYXJldFRvQm91bmRhcnkgJiYgIWNsb3Nlc3RSdW4gJiYgbGFzdExpbmVXaXRo
Q2hpbGRyZW4pIHsKICAgICAgICAgLy8geSBjb29yZGluYXRlIGlzIGJlbG93IGxhc3Qgcm9vdCBs
aW5lIGJveCwgcHJldGVuZCB3ZSBoaXQgaXQKLSAgICAgICAgYXV0byBjbG9zZXN0UnVuID0gTGF5
b3V0SW50ZWdyYXRpb246OkxpbmVJdGVyYXRvcihsYXN0Um9vdEJveFdpdGhDaGlsZHJlbikuY2xv
c2VzdFJ1bkZvckxvZ2ljYWxMZWZ0UG9zaXRpb24ocG9pbnRJbkxvZ2ljYWxDb250ZW50cy54KCkp
OwotICAgICAgICBjbG9zZXN0Qm94ID0gY2xvc2VzdFJ1biA/IGNsb3Nlc3RSdW4tPmxlZ2FjeUlu
bGluZUJveCgpIDogbnVsbHB0cjsKKyAgICAgICAgY2xvc2VzdFJ1biA9IGxhc3RMaW5lV2l0aENo
aWxkcmVuLmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKHBvaW50SW5Mb2dpY2FsQ29u
dGVudHMueCgpKTsKICAgICB9CiAKLSAgICBpZiAoY2xvc2VzdEJveCkgeworICAgIGlmIChjbG9z
ZXN0UnVuKSB7CiAgICAgICAgIGlmIChtb3ZlQ2FyZXRUb0JvdW5kYXJ5KSB7Ci0gICAgICAgICAg
ICBMYXlvdXRVbml0IGZpcnN0Um9vdEJveFdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0
Um9vdEJveFdpdGhDaGlsZHJlbi0+c2VsZWN0aW9uVG9wKFJvb3RJbmxpbmVCb3g6OkZvckhpdFRl
c3Rpbmc6OlllcyksIExheW91dFVuaXQoZmlyc3RSb290Qm94V2l0aENoaWxkcmVuLT5sb2dpY2Fs
VG9wKCkpKTsKLSAgICAgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IGZp
cnN0Um9vdEJveFdpdGhDaGlsZHJlblRvcAotICAgICAgICAgICAgICAgIHx8IChibG9ja3NBcmVG
bGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGZpcnN0Um9vdEJveFdpdGhD
aGlsZHJlblRvcCkpIHsKLSAgICAgICAgICAgICAgICBJbmxpbmVCb3gqIGJveCA9IGZpcnN0Um9v
dEJveFdpdGhDaGlsZHJlbi0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpOwotICAgICAgICAgICAgICAg
IGlmIChib3gtPmlzTGluZUJyZWFrKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKElubGlu
ZUJveCogbmV3Qm94ID0gYm94LT5uZXh0TGVhZk9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBib3ggPSBuZXdCb3g7CisgICAgICAgICAgICBMYXlvdXRV
bml0IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcCA9IHN0ZDo6bWluKGZpcnN0TGluZVdpdGhDaGls
ZHJlbi0+c2VsZWN0aW9uVG9wRm9ySGl0VGVzdGluZygpLCBMYXlvdXRVbml0KGZpcnN0TGluZVdp
dGhDaGlsZHJlbi0+dG9wKCkpKTsKKyAgICAgICAgICAgIGlmIChwb2ludEluTG9naWNhbENvbnRl
bnRzLnkoKSA8IGZpcnN0TGluZVdpdGhDaGlsZHJlblRvcAorICAgICAgICAgICAgICAgIHx8IChi
bG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IGZpcnN0TGlu
ZVdpdGhDaGlsZHJlblRvcCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJ1biA9IGZpcnN0TGlu
ZVdpdGhDaGlsZHJlbi5maXJzdFJ1bigpOworICAgICAgICAgICAgICAgIGlmIChydW4tPmlzTGlu
ZUJyZWFrKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gbmV4dCA9IHJ1bi5uZXh0
T25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1biA9
IG5leHQ7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8vIHkgY29vcmRpbmF0
ZSBpcyBhYm92ZSBmaXJzdCByb290IGxpbmUgYm94LCBzbyByZXR1cm4gdGhlIHN0YXJ0IG9mIHRo
ZSBmaXJzdAotICAgICAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvckJveChib3gsIHRydWUp
OworICAgICAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvclJ1bigqdGhpcywgcnVuLCB0cnVl
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIC8vIHBhc3MgdGhlIGJveCBh
IHRvcCBwb3NpdGlvbiB0aGF0IGlzIGluc2lkZSBpdAotICAgICAgICBMYXlvdXRQb2ludCBwb2lu
dChwb2ludEluTG9naWNhbENvbnRlbnRzLngoKSwgY2xvc2VzdEJveC0+cm9vdCgpLmJsb2NrRGly
ZWN0aW9uUG9pbnRJbkxpbmUoKSk7CisgICAgICAgIExheW91dFBvaW50IHBvaW50KHBvaW50SW5M
b2dpY2FsQ29udGVudHMueCgpLCBjbG9zZXN0UnVuLmxpbmUoKS0+YmxvY2tEaXJlY3Rpb25Qb2lu
dEluTGluZSgpKTsKICAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAg
ICAgICAgICAgcG9pbnQgPSBwb2ludC50cmFuc3Bvc2VkUG9pbnQoKTsKLSAgICAgICAgaWYgKGNs
b3Nlc3RCb3gtPnJlbmRlcmVyKCkuaXNSZXBsYWNlZCgpKQotICAgICAgICAgICAgcmV0dXJuIHBv
c2l0aW9uRm9yUG9pbnRSZXNwZWN0aW5nRWRpdGluZ0JvdW5kYXJpZXMoKnRoaXMsIGRvd25jYXN0
PFJlbmRlckJveD4oY2xvc2VzdEJveC0+cmVuZGVyZXIoKSksIHBvaW50KTsKLSAgICAgICAgcmV0
dXJuIGNsb3Nlc3RCb3gtPnJlbmRlcmVyKCkucG9zaXRpb25Gb3JQb2ludChwb2ludCwgbnVsbHB0
cik7CisgICAgICAgIGlmIChjbG9zZXN0UnVuLT5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvclBvaW50UmVzcGVjdGluZ0VkaXRpbmdCb3VuZGFy
aWVzKCp0aGlzLCBjb25zdF9jYXN0PFJlbmRlckJveCY+KGRvd25jYXN0PFJlbmRlckJveD4oY2xv
c2VzdFJ1bi0+cmVuZGVyZXIoKSkpLCBwb2ludCk7CisgICAgICAgIHJldHVybiBjb25zdF9jYXN0
PFJlbmRlck9iamVjdCY+KGNsb3Nlc3RSdW4tPnJlbmRlcmVyKCkpLnBvc2l0aW9uRm9yUG9pbnQo
cG9pbnQsIG51bGxwdHIpOwogICAgIH0KIAotICAgIGlmIChsYXN0Um9vdEJveFdpdGhDaGlsZHJl
bikgeworICAgIGlmIChsYXN0TGluZVdpdGhDaGlsZHJlbikgewogICAgICAgICAvLyBXZSBoaXQg
dGhpcyBjYXNlIGZvciBNYWMgYmVoYXZpb3Igd2hlbiB0aGUgWSBjb29yZGluYXRlIGlzIGJlbG93
IHRoZSBsYXN0IGJveC4KICAgICAgICAgQVNTRVJUKG1vdmVDYXJldFRvQm91bmRhcnkpOwotICAg
ICAgICBJbmxpbmVCb3gqIGxvZ2ljYWxseUxhc3RCb3g7Ci0gICAgICAgIGlmIChsYXN0Um9vdEJv
eFdpdGhDaGlsZHJlbi0+Z2V0TG9naWNhbEVuZEJveFdpdGhOb2RlKGxvZ2ljYWxseUxhc3RCb3gp
KQotICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uRm9yQm94KGxvZ2ljYWxseUxhc3RCb3gsIGZh
bHNlKTsKKyAgICAgICAgaWYgKGF1dG8gbG9naWNhbGx5TGFzdFJ1biA9IGxhc3RMaW5lV2l0aENo
aWxkcmVuLmxvZ2ljYWxFbmRSdW5XaXRoTm9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIHBvc2l0
aW9uRm9yUnVuKCp0aGlzLCBsb2dpY2FsbHlMYXN0UnVuLCBmYWxzZSk7CiAgICAgfQogCiAgICAg
Ly8gQ2FuJ3QgcmVhY2ggdGhpcy4gV2UgaGF2ZSBhIHJvb3QgbGluZSBib3gsIGJ1dCBpdCBoYXMg
bm8ga2lkcy4KQEAgLTM0ODMsNyArMzQ4MCw2IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9j
a0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiAK
IFBvc2l0aW9uIFJlbmRlckJsb2NrRmxvdzo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQ
b2ludCYgcG9pbnQpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgZm9yY2VzIENvbXBsZXggTGluZSBM
YXlvdXQuCiAgICAgcmV0dXJuIHBvc2l0aW9uRm9yUG9pbnQocG9pbnQsIG51bGxwdHIpLmRlZXBF
cXVpdmFsZW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuaAppbmRleCAxNTYyZGE2YTE4ZjUuLjNkOWI1MWYyODg4MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaApAQCAtNTI3LDcgKzUyNyw2IEBAIHByaXZhdGU6
CiAgICAgR2FwUmVjdHMgaW5saW5lU2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2Nr
LCBjb25zdCBMYXlvdXRQb2ludCYgcm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5
b3V0U2l6ZSYgb2Zmc2V0RnJvbVJvb3RCbG9jaywKICAgICAgICAgTGF5b3V0VW5pdCYgbGFzdExv
Z2ljYWxUb3AsIExheW91dFVuaXQmIGxhc3RMb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCYgbGFzdExv
Z2ljYWxSaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYsIGNvbnN0IFBh
aW50SW5mbyopIG92ZXJyaWRlOwogICAgIAotICAgIFBvc2l0aW9uIHBvc2l0aW9uRm9yQm94KElu
bGluZUJveCosIGJvb2wgc3RhcnQgPSB0cnVlKSBjb25zdDsKICAgICBWaXNpYmxlUG9zaXRpb24g
cG9zaXRpb25Gb3JQb2ludFdpdGhJbmxpbmVDaGlsZHJlbihjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnRJbkxvZ2ljYWxDb250ZW50cywgY29uc3QgUmVuZGVyRnJhZ21lbnRDb250YWluZXIqKSBvdmVy
cmlkZTsKICAgICB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5lQ2hpbGRyZW4oVmVjdG9y
PExheW91dFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQs
IGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCmluZGV4IGZiNzAzNGFhMjJkOS4uNDVhNDJi
YmQ3Mjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCkBA
IC03NTAsMTEgKzc1MCw2IEBAIExheW91dFVuaXQgUm9vdElubGluZUJveDo6c2VsZWN0aW9uQm90
dG9tKCkgY29uc3QKICAgICByZXR1cm4gbmV4dFRvcDsKIH0KIAotaW50IFJvb3RJbmxpbmVCb3g6
OmJsb2NrRGlyZWN0aW9uUG9pbnRJbkxpbmUoKSBjb25zdAotewotICAgIHJldHVybiAhYmxvY2tG
bG93KCkuc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpID8gc3RkOjptYXgobGlu
ZVRvcCgpLCBzZWxlY3Rpb25Ub3AoKSkgOiBzdGQ6Om1pbihsaW5lQm90dG9tKCksIHNlbGVjdGlv
bkJvdHRvbSgpKTsKLX0KLQogUmVuZGVyQmxvY2tGbG93JiBSb290SW5saW5lQm94OjpibG9ja0Zs
b3coKSBjb25zdAogewogICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KHJlbmRl
cmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKaW5kZXggOTcy
ZTdkYTNiMGRmLi45ZTA2YTQzMDI1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Sb290SW5saW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJ
bmxpbmVCb3guaApAQCAtODAsOCArODAsNiBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBzZWxl
Y3Rpb25Ub3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCkgY29uc3Q7CiAgICAgTGF5b3V0VW5p
dCBzZWxlY3Rpb25IZWlnaHRBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCkgY29uc3QgeyByZXR1
cm4gc3RkOjptYXg8TGF5b3V0VW5pdD4oMCwgc2VsZWN0aW9uQm90dG9tKCkgLSBzZWxlY3Rpb25U
b3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCkpOyB9CiAKLSAgICBpbnQgYmxvY2tEaXJlY3Rp
b25Qb2ludEluTGluZSgpIGNvbnN0OwotCiAgICAgTGF5b3V0VW5pdCBhbGlnbkJveGVzSW5CbG9j
a0RpcmVjdGlvbihMYXlvdXRVbml0IGhlaWdodE9mQmxvY2ssIEdseXBoT3ZlcmZsb3dBbmRGYWxs
YmFja0ZvbnRzTWFwJiwgVmVydGljYWxQb3NpdGlvbkNhY2hlJik7CiAgICAgdm9pZCBzZXRMaW5l
VG9wQm90dG9tUG9zaXRpb25zKExheW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IGJvdHRvbSwgTGF5
b3V0VW5pdCB0b3BXaXRoTGVhZGluZywgTGF5b3V0VW5pdCBib3R0b21XaXRoTGVhZGluZykKICAg
ICB7IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412642</attachid>
            <date>2020-10-29 06:40:38 -0700</date>
            <delta_ts>2020-10-29 07:21:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>lfc-positionForPointWithInlineChildren-4.patch</filename>
            <type>text/plain</type>
            <size>19293</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NDUxYTI4YjQ1YTAuLmI0OTNlYzFiMTE1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMyIEBACisyMDIwLTEwLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlv
bkZvclBvaW50V2l0aElubGluZUNoaWxkcmVuIHNob3VsZCB1c2UgaXRlcmF0b3IKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI4MworCisgICAgICAg
IFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICBSZWR1Y2UgSW5saW5lQm94IGFj
Y2VzcyBhbmQgZWxpbWluYXRlIG9uZSBlbnN1cmVMaW5lQm94ZXMoKSBjYWxsLgorCisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aExpbmU6OnRvcFdpdGhMZWFk
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoTGlu
ZTo6Ym90dG9tV2l0aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OlBhdGhMaW5lOjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQ
YXRoLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9y
TGVnYWN5UGF0aDo6dG9wV2l0aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246OkxpbmVJdGVyYXRvckxlZ2FjeVBhdGg6OmJvdHRvbVdpdGhMZWFkaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0
b3JMZWdhY3lQYXRoOjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUl0ZXJhdG9yTW9kZXJu
UGF0aDo6dG9wV2l0aExlYWRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OkxpbmVJdGVyYXRvck1vZGVyblBhdGg6OmJvdHRvbVdpdGhMZWFkaW5nIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3JNb2Rl
cm5QYXRoOjpsZWdhY3lSb290SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW5JdGVyYXRvck1vZGVyblBhdGg6Omxl
Z2FjeUlubGluZUJveCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3NpdGlvbkZvclJ1bik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlvbkZvckJveCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oOgorCiAy
MDIwLTEwLTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb25jdXJyZW50IGRpc3BsYXkgbGlzdHNdIEFkZCBhbHRlcm5hdGUgdmVyc2lvbnMgb2Yg
ZXhpc3RpbmcgZGlzcGxheSBsaXN0IGl0ZW1zIHRoYXQgb25seSBjb250YWluIGlubGluZSBkYXRh
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvci5oCmluZGV4IDI0MjE2ZTE2YTlmMi4uMjZi
Y2IzZDNjNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaApAQCAtNTUsNiAr
NTUsOCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AoKSBjb25zdDsKICAg
ICBMYXlvdXRVbml0IHNlbGVjdGlvblRvcEZvckhpdFRlc3RpbmcoKSBjb25zdDsKICAgICBMYXlv
dXRVbml0IHNlbGVjdGlvbkJvdHRvbSgpIGNvbnN0OworICAgIExheW91dFVuaXQgdG9wV2l0aExl
YWRpbmcoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IGJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3Q7
CiAKICAgICBmbG9hdCB5KCkgY29uc3Q7CiAgICAgZmxvYXQgbG9naWNhbEhlaWdodCgpIGNvbnN0
OwpAQCAtNjQsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0hvcml6b250YWwoKSBjb25z
dDsKIAogICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgY29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7
CisgICAgY29uc3QgUm9vdElubGluZUJveCogbGVnYWN5Um9vdElubGluZUJveCgpIGNvbnN0Owog
CiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNzIExpbmVJdGVyYXRvcjsKQEAgLTEyOCw3ICsx
MzEsNyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBQYXRoTGluZTo6dG9wKCkgY29uc3QKIGlubGluZSBM
YXlvdXRVbml0IFBhdGhMaW5lOjpib3R0b20oKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKLSAgICAgICAgcmV0
dXJuIHBhdGgudG9wKCk7CisgICAgICAgIHJldHVybiBwYXRoLmJvdHRvbSgpOwogICAgIH0pOwog
fQogCkBAIC0xNTMsNiArMTU2LDIwIEBAIGlubGluZSBMYXlvdXRVbml0IFBhdGhMaW5lOjpzZWxl
Y3Rpb25Cb3R0b20oKSBjb25zdAogICAgIH0pOwogfQogCitpbmxpbmUgTGF5b3V0VW5pdCBQYXRo
TGluZTo6dG9wV2l0aExlYWRpbmcoKSBjb25zdAoreworICAgIHJldHVybiBXVEY6OnN3aXRjaE9u
KG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKKyAgICAgICAgcmV0dXJuIHBh
dGgudG9wV2l0aExlYWRpbmcoKTsKKyAgICB9KTsKK30KKworaW5saW5lIExheW91dFVuaXQgUGF0
aExpbmU6OmJvdHRvbVdpdGhMZWFkaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0
Y2hPbihtX3BhdGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CisgICAgICAgIHJldHVy
biBwYXRoLmJvdHRvbVdpdGhMZWFkaW5nKCk7CisgICAgfSk7Cit9CisKIGlubGluZSBmbG9hdCBQ
YXRoTGluZTo6eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFy
aWFudCwgW10oY29uc3QgYXV0byYgcGF0aCkgewpAQCAtMTgxLDYgKzE5OCwxMyBAQCBpbmxpbmUg
Y29uc3QgUmVuZGVyQmxvY2tGbG93JiBQYXRoTGluZTo6Y29udGFpbmluZ0Jsb2NrKCkgY29uc3QK
ICAgICB9KTsKIH0KIAoraW5saW5lIGNvbnN0IFJvb3RJbmxpbmVCb3gqIFBhdGhMaW5lOjpsZWdh
Y3lSb290SW5saW5lQm94KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3Bh
dGhWYXJpYW50LCBbXShjb25zdCBhdXRvJiBwYXRoKSB7CisgICAgICAgIHJldHVybiBwYXRoLmxl
Z2FjeVJvb3RJbmxpbmVCb3goKTsKKyAgICB9KTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRl
cmF0b3JMZWdhY3lQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JMZWdhY3lQYXRoLmgKaW5kZXggNTA4MWY5Y2M3MDMy
Li5jOGI2ZGIzNzU5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvckxlZ2FjeVBhdGguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0
b3JMZWdhY3lQYXRoLmgKQEAgLTQ5LDEyICs0OSwxNSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5p
dCBzZWxlY3Rpb25Ub3AoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gtPnNlbGVjdGlv
blRvcCgpOyB9CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3BGb3JIaXRUZXN0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Ub3AoUm9vdElubGluZUJveDo6
Rm9ySGl0VGVzdGluZzo6WWVzKTsgfQogICAgIExheW91dFVuaXQgc2VsZWN0aW9uQm90dG9tKCkg
Y29uc3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5zZWxlY3Rpb25Cb3R0b20oKTsgfQorICAg
IExheW91dFVuaXQgdG9wV2l0aExlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVC
b3gtPmxpbmVUb3BXaXRoTGVhZGluZygpOyB9CisgICAgTGF5b3V0VW5pdCBib3R0b21XaXRoTGVh
ZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveC0+bGluZUJvdHRvbVdpdGhMZWFk
aW5nKCk7IH0KIAogICAgIGZsb2F0IHkoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJbmxpbmVCb3gt
PnkoKTsgfQogICAgIGZsb2F0IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RJ
bmxpbmVCb3gtPmxvZ2ljYWxIZWlnaHQoKTsgfQogICAgIGJvb2wgaXNIb3Jpem9udGFsKCkgY29u
c3QgeyByZXR1cm4gbV9yb290SW5saW5lQm94LT5pc0hvcml6b250YWwoKTsgfQogCiAgICAgY29u
c3QgUmVuZGVyQmxvY2tGbG93JiBjb250YWluaW5nQmxvY2soKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RJbmxpbmVCb3gtPmJsb2NrRmxvdygpOyB9CisgICAgY29uc3QgUm9vdElubGluZUJveCogbGVn
YWN5Um9vdElubGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdElubGluZUJveDsgfQogCiAg
ICAgdm9pZCB0cmF2ZXJzZU5leHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBh
dGguaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkxpbmVJdGVyYXRvck1vZGVyblBhdGguaAppbmRleCAwOGU3NDg4NDlhMGUuLmI0ZWIxMjczMzVj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uTGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBhdGgu
aApAQCAtNTEsMTUgKzUxLDE5IEBAIHB1YmxpYzoKIAogICAgIExheW91dFVuaXQgdG9wKCkgY29u
c3QgeyByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Um91bmQobGluZSgpLnJlY3QoKS55KCkp
OyB9CiAgICAgTGF5b3V0VW5pdCBib3R0b20oKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpm
cm9tRmxvYXRSb3VuZChsaW5lKCkucmVjdCgpLm1heFkoKSk7IH0KKyAgICAvLyBGSVhNRTogV2hh
dCBzaG91bGQgdGhlc2UgcmVhbGx5IGJlPwogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wKCkg
Y29uc3QgeyByZXR1cm4gdG9wKCk7IH0KICAgICBMYXlvdXRVbml0IHNlbGVjdGlvblRvcEZvckhp
dFRlc3RpbmcoKSBjb25zdCB7IHJldHVybiB0b3AoKTsgfQogICAgIExheW91dFVuaXQgc2VsZWN0
aW9uQm90dG9tKCkgY29uc3QgeyByZXR1cm4gYm90dG9tKCk7IH0KKyAgICBMYXlvdXRVbml0IHRv
cFdpdGhMZWFkaW5nKCkgY29uc3QgeyByZXR1cm4gdG9wKCk7IH0KKyAgICBMYXlvdXRVbml0IGJv
dHRvbVdpdGhMZWFkaW5nKCkgY29uc3QgeyByZXR1cm4gYm90dG9tKCk7IH0KIAogICAgIGZsb2F0
IHkoKSBjb25zdCB7IHJldHVybiB0b3AoKTsgfQogICAgIGZsb2F0IGxvZ2ljYWxIZWlnaHQoKSBj
b25zdCB7IHJldHVybiBsaW5lKCkucmVjdCgpLmhlaWdodCgpOyB9CiAgICAgYm9vbCBpc0hvcml6
b250YWwoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBjb25zdCBSZW5kZXJCbG9ja0Zs
b3cmIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQ29udGVudC0+Y29u
dGFpbmluZ0Jsb2NrKCk7IH0KKyAgICBjb25zdCBSb290SW5saW5lQm94KiBsZWdhY3lSb290SW5s
aW5lQm94KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAgICAgdm9pZCB0cmF2ZXJzZU5l
eHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5Q
YXRoLmgKaW5kZXggNjg3MWVjNGJlOTMyLi5hN2MyNjQ4NTM3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9y
TW9kZXJuUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC0xNzAsNyArMTcwLDYgQEAg
cHVibGljOgogCiAgICAgSW5saW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdAogICAgIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApp
bmRleCAxYmYzNWIyN2FlYzcuLjdlZWQ3MTExYWM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTMzMDYsMTkgKzMzMDYsMTkgQEAgYm9vbCBS
ZW5kZXJCbG9ja0Zsb3c6OmNvbnRhaW5zTm9uWmVyb0JpZGlMZXZlbCgpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1Qb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9uRm9yQm94
KElubGluZUJveCAqYm94LCBib29sIHN0YXJ0KSBjb25zdAorc3RhdGljIFBvc2l0aW9uIHBvc2l0
aW9uRm9yUnVuKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgZmxvdywgTGF5b3V0SW50ZWdyYXRpb246
OlJ1bkl0ZXJhdG9yIHJ1biwgYm9vbCBzdGFydCkKIHsKLSAgICBpZiAoIWJveCkKKyAgICBpZiAo
IXJ1bikKICAgICAgICAgcmV0dXJuIFBvc2l0aW9uKCk7CiAKLSAgICBpZiAoIWJveC0+cmVuZGVy
ZXIoKS5ub25Qc2V1ZG9Ob2RlKCkpCi0gICAgICAgIHJldHVybiBtYWtlRGVwcmVjYXRlZExlZ2Fj
eVBvc2l0aW9uKG5vblBzZXVkb0VsZW1lbnQoKSwgc3RhcnQgPyBjYXJldE1pbk9mZnNldCgpIDog
Y2FyZXRNYXhPZmZzZXQoKSk7CisgICAgaWYgKCFydW4tPnJlbmRlcmVyKCkubm9uUHNldWRvTm9k
ZSgpKQorICAgICAgICByZXR1cm4gbWFrZURlcHJlY2F0ZWRMZWdhY3lQb3NpdGlvbihmbG93Lm5v
blBzZXVkb0VsZW1lbnQoKSwgc3RhcnQgPyBmbG93LmNhcmV0TWluT2Zmc2V0KCkgOiBmbG93LmNh
cmV0TWF4T2Zmc2V0KCkpOwogCi0gICAgaWYgKCFpczxJbmxpbmVUZXh0Qm94PigqYm94KSkKLSAg
ICAgICAgcmV0dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRpb24oYm94LT5yZW5kZXJlcigp
Lm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyBib3gtPnJlbmRlcmVyKCkuY2FyZXRNaW5PZmZzZXQo
KSA6IGJveC0+cmVuZGVyZXIoKS5jYXJldE1heE9mZnNldCgpKTsKKyAgICBpZiAoIWlzPExheW91
dEludGVncmF0aW9uOjpUZXh0UnVuSXRlcmF0b3I+KHJ1bikpCisgICAgICAgIHJldHVybiBtYWtl
RGVwcmVjYXRlZExlZ2FjeVBvc2l0aW9uKHJ1bi0+cmVuZGVyZXIoKS5ub25Qc2V1ZG9Ob2RlKCks
IHN0YXJ0ID8gcnVuLT5yZW5kZXJlcigpLmNhcmV0TWluT2Zmc2V0KCkgOiBydW4tPnJlbmRlcmVy
KCkuY2FyZXRNYXhPZmZzZXQoKSk7CiAKLSAgICBhdXRvJiB0ZXh0Qm94ID0gZG93bmNhc3Q8SW5s
aW5lVGV4dEJveD4oKmJveCk7Ci0gICAgcmV0dXJuIG1ha2VEZXByZWNhdGVkTGVnYWN5UG9zaXRp
b24odGV4dEJveC5yZW5kZXJlcigpLm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyB0ZXh0Qm94LnN0
YXJ0KCkgOiB0ZXh0Qm94LnN0YXJ0KCkgKyB0ZXh0Qm94LmxlbigpKTsKKyAgICBhdXRvJiB0ZXh0
UnVuID0gZG93bmNhc3Q8TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcj4ocnVuKTsK
KyAgICByZXR1cm4gbWFrZURlcHJlY2F0ZWRMZWdhY3lQb3NpdGlvbih0ZXh0UnVuLT5yZW5kZXJl
cigpLm5vblBzZXVkb05vZGUoKSwgc3RhcnQgPyB0ZXh0UnVuLT5sb2NhbFN0YXJ0T2Zmc2V0KCkg
OiB0ZXh0UnVuLT5sb2NhbEVuZE9mZnNldCgpKTsKIH0KIAogUmVuZGVyVGV4dCogUmVuZGVyQmxv
Y2tGbG93OjpmaW5kQ2xvc2VzdFRleHRBdEFic29sdXRlUG9pbnQoY29uc3QgRmxvYXRQb2ludCYg
cG9pbnQpCkBAIC0zMzkwLDg5ICszMzkwLDg2IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJCbG9j
a0Zsb3c6OnBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5b3V0CiB7
CiAgICAgQVNTRVJUKGNoaWxkcmVuSW5saW5lKCkpOwogCi0gICAgZW5zdXJlTGluZUJveGVzKCk7
CisgICAgYXV0byBmaXJzdExpbmUgPSBMYXlvdXRJbnRlZ3JhdGlvbjo6Zmlyc3RMaW5lRm9yKCp0
aGlzKTsKIAotICAgIGlmICghZmlyc3RSb290Qm94KCkpCisgICAgaWYgKCFmaXJzdExpbmUpCiAg
ICAgICAgIHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRpb24oMCwgQWZmaW5pdHk6OkRvd25zdHJl
YW0pOwogCiAgICAgYm9vbCBsaW5lc0FyZUZsaXBwZWQgPSBzdHlsZSgpLmlzRmxpcHBlZExpbmVz
V3JpdGluZ01vZGUoKTsKICAgICBib29sIGJsb2Nrc0FyZUZsaXBwZWQgPSBzdHlsZSgpLmlzRmxp
cHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCk7CiAKICAgICAvLyBsb29rIGZvciB0aGUgY2xvc2VzdCBs
aW5lIGJveCBpbiB0aGUgcm9vdCBib3ggd2hpY2ggaXMgYXQgdGhlIHBhc3NlZC1pbiB5IGNvb3Jk
aW5hdGUKLSAgICBJbmxpbmVCb3gqIGNsb3Nlc3RCb3ggPSAwOwotICAgIFJvb3RJbmxpbmVCb3gq
IGZpcnN0Um9vdEJveFdpdGhDaGlsZHJlbiA9IDA7Ci0gICAgUm9vdElubGluZUJveCogbGFzdFJv
b3RCb3hXaXRoQ2hpbGRyZW4gPSAwOwotICAgIGZvciAoUm9vdElubGluZUJveCogcm9vdCA9IGZp
cnN0Um9vdEJveCgpOyByb290OyByb290ID0gcm9vdC0+bmV4dFJvb3RCb3goKSkgewotICAgICAg
ICBpZiAoZnJhZ21lbnQgJiYgcm9vdC0+Y29udGFpbmluZ0ZyYWdtZW50KCkgIT0gZnJhZ21lbnQp
CisgICAgTGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yIGNsb3Nlc3RSdW47CisgICAgTGF5
b3V0SW50ZWdyYXRpb246OkxpbmVJdGVyYXRvciBmaXJzdExpbmVXaXRoQ2hpbGRyZW47CisgICAg
TGF5b3V0SW50ZWdyYXRpb246OkxpbmVJdGVyYXRvciBsYXN0TGluZVdpdGhDaGlsZHJlbjsKKyAg
ICBmb3IgKGF1dG8gbGluZSA9IGZpcnN0TGluZTsgbGluZTsgbGluZS50cmF2ZXJzZU5leHQoKSkg
eworICAgICAgICBpZiAoZnJhZ21lbnQgJiYgbGluZS0+bGVnYWN5Um9vdElubGluZUJveCgpICYm
IGxpbmUtPmxlZ2FjeVJvb3RJbmxpbmVCb3goKS0+Y29udGFpbmluZ0ZyYWdtZW50KCkgIT0gZnJh
Z21lbnQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoIXJvb3QtPmZpcnN0
TGVhZkRlc2NlbmRhbnQoKSkKKyAgICAgICAgaWYgKCFsaW5lLmZpcnN0UnVuKCkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKCFmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4pCi0g
ICAgICAgICAgICBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4gPSByb290OworICAgICAgICBpZiAo
IWZpcnN0TGluZVdpdGhDaGlsZHJlbikKKyAgICAgICAgICAgIGZpcnN0TGluZVdpdGhDaGlsZHJl
biA9IGxpbmU7CiAKLSAgICAgICAgaWYgKCFsaW5lc0FyZUZsaXBwZWQgJiYgcm9vdC0+aXNGaXJz
dEFmdGVyUGFnZUJyZWFrKCkgJiYgKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpIDwgcm9vdC0+
bGluZVRvcFdpdGhMZWFkaW5nKCkKLSAgICAgICAgICAgIHx8IChibG9ja3NBcmVGbGlwcGVkICYm
IHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IHJvb3QtPmxpbmVUb3BXaXRoTGVhZGluZygp
KSkpCisgICAgICAgIGlmICghbGluZXNBcmVGbGlwcGVkICYmIGxpbmUtPmxlZ2FjeVJvb3RJbmxp
bmVCb3goKSAmJiBsaW5lLT5sZWdhY3lSb290SW5saW5lQm94KCktPmlzRmlyc3RBZnRlclBhZ2VC
cmVhaygpCisgICAgICAgICAgICAmJiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPCBsaW5l
LT50b3BXaXRoTGVhZGluZygpIHx8IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2Fs
Q29udGVudHMueSgpID09IGxpbmUtPnRvcFdpdGhMZWFkaW5nKCkpKSkKICAgICAgICAgICAgIGJy
ZWFrOwogCi0gICAgICAgIGxhc3RSb290Qm94V2l0aENoaWxkcmVuID0gcm9vdDsKKyAgICAgICAg
bGFzdExpbmVXaXRoQ2hpbGRyZW4gPSBsaW5lOwogCiAgICAgICAgIC8vIGNoZWNrIGlmIHRoaXMg
cm9vdCBsaW5lIGJveCBpcyBsb2NhdGVkIGF0IHRoaXMgeSBjb29yZGluYXRlCi0gICAgICAgIGlm
IChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA8IHJvb3QtPnNlbGVjdGlvbkJvdHRvbSgpIHx8
IChibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMueSgpID09IHJvb3Qt
PnNlbGVjdGlvbkJvdHRvbSgpKSkgeworICAgICAgICBpZiAocG9pbnRJbkxvZ2ljYWxDb250ZW50
cy55KCkgPCBsaW5lLT5zZWxlY3Rpb25Cb3R0b20oKSB8fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBw
b2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA9PSBsaW5lLT5zZWxlY3Rpb25Cb3R0b20oKSkpIHsK
ICAgICAgICAgICAgIGlmIChsaW5lc0FyZUZsaXBwZWQpIHsKLSAgICAgICAgICAgICAgICBSb290
SW5saW5lQm94KiBuZXh0Um9vdEJveFdpdGhDaGlsZHJlbiA9IHJvb3QtPm5leHRSb290Qm94KCk7
Ci0gICAgICAgICAgICAgICAgd2hpbGUgKG5leHRSb290Qm94V2l0aENoaWxkcmVuICYmICFuZXh0
Um9vdEJveFdpdGhDaGlsZHJlbi0+Zmlyc3RMZWFmRGVzY2VuZGFudCgpKQotICAgICAgICAgICAg
ICAgICAgICBuZXh0Um9vdEJveFdpdGhDaGlsZHJlbiA9IG5leHRSb290Qm94V2l0aENoaWxkcmVu
LT5uZXh0Um9vdEJveCgpOworICAgICAgICAgICAgICAgIGF1dG8gbmV4dExpbmVXaXRoQ2hpbGRy
ZW4gPSBsaW5lLm5leHQoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAobmV4dExpbmVXaXRoQ2hp
bGRyZW4gJiYgIW5leHRMaW5lV2l0aENoaWxkcmVuLmZpcnN0UnVuKCkpCisgICAgICAgICAgICAg
ICAgICAgIG5leHRMaW5lV2l0aENoaWxkcmVuLnRyYXZlcnNlTmV4dCgpOwogCi0gICAgICAgICAg
ICAgICAgaWYgKG5leHRSb290Qm94V2l0aENoaWxkcmVuICYmIG5leHRSb290Qm94V2l0aENoaWxk
cmVuLT5pc0ZpcnN0QWZ0ZXJQYWdlQnJlYWsoKSAmJiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55
KCkgPiBuZXh0Um9vdEJveFdpdGhDaGlsZHJlbi0+bGluZVRvcFdpdGhMZWFkaW5nKCkKLSAgICAg
ICAgICAgICAgICAgICAgfHwgKCFibG9ja3NBcmVGbGlwcGVkICYmIHBvaW50SW5Mb2dpY2FsQ29u
dGVudHMueSgpID09IG5leHRSb290Qm94V2l0aENoaWxkcmVuLT5saW5lVG9wV2l0aExlYWRpbmco
KSkpKQorICAgICAgICAgICAgICAgIGlmIChuZXh0TGluZVdpdGhDaGlsZHJlbiAmJiBuZXh0TGlu
ZVdpdGhDaGlsZHJlbi0+bGVnYWN5Um9vdElubGluZUJveCgpICYmIG5leHRMaW5lV2l0aENoaWxk
cmVuLT5sZWdhY3lSb290SW5saW5lQm94KCktPmlzRmlyc3RBZnRlclBhZ2VCcmVhaygpCisgICAg
ICAgICAgICAgICAgICAgICYmIChwb2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA+IG5leHRMaW5l
V2l0aENoaWxkcmVuLT50b3BXaXRoTGVhZGluZygpIHx8ICghYmxvY2tzQXJlRmxpcHBlZCAmJiBw
b2ludEluTG9naWNhbENvbnRlbnRzLnkoKSA9PSBuZXh0TGluZVdpdGhDaGlsZHJlbi0+dG9wV2l0
aExlYWRpbmcoKSkpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmIChhdXRvIGNsb3Nlc3RSdW4gPSBMYXlvdXRJbnRlZ3JhdGlvbjo6
TGluZUl0ZXJhdG9yKHJvb3QpLmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKHBvaW50
SW5Mb2dpY2FsQ29udGVudHMueCgpKSkKLSAgICAgICAgICAgICAgICBjbG9zZXN0Qm94ID0gY2xv
c2VzdFJ1bi0+bGVnYWN5SW5saW5lQm94KCk7Ci0gICAgICAgICAgICBpZiAoY2xvc2VzdEJveCkK
KyAgICAgICAgICAgIGNsb3Nlc3RSdW4gPSBsaW5lLmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBv
c2l0aW9uKHBvaW50SW5Mb2dpY2FsQ29udGVudHMueCgpKTsKKyAgICAgICAgICAgIGlmIChjbG9z
ZXN0UnVuKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCiAgICAg
Ym9vbCBtb3ZlQ2FyZXRUb0JvdW5kYXJ5ID0gZnJhbWUoKS5lZGl0b3IoKS5iZWhhdmlvcigpLnNo
b3VsZE1vdmVDYXJldFRvSG9yaXpvbnRhbEJvdW5kYXJ5V2hlblBhc3RUb3BPckJvdHRvbSgpOwog
Ci0gICAgaWYgKCFtb3ZlQ2FyZXRUb0JvdW5kYXJ5ICYmICFjbG9zZXN0Qm94ICYmIGxhc3RSb290
Qm94V2l0aENoaWxkcmVuKSB7CisgICAgaWYgKCFtb3ZlQ2FyZXRUb0JvdW5kYXJ5ICYmICFjbG9z
ZXN0UnVuICYmIGxhc3RMaW5lV2l0aENoaWxkcmVuKSB7CiAgICAgICAgIC8vIHkgY29vcmRpbmF0
ZSBpcyBiZWxvdyBsYXN0IHJvb3QgbGluZSBib3gsIHByZXRlbmQgd2UgaGl0IGl0Ci0gICAgICAg
IGF1dG8gY2xvc2VzdFJ1biA9IExheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3IobGFzdFJv
b3RCb3hXaXRoQ2hpbGRyZW4pLmNsb3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKHBvaW50
SW5Mb2dpY2FsQ29udGVudHMueCgpKTsKLSAgICAgICAgY2xvc2VzdEJveCA9IGNsb3Nlc3RSdW4g
PyBjbG9zZXN0UnVuLT5sZWdhY3lJbmxpbmVCb3goKSA6IG51bGxwdHI7CisgICAgICAgIGNsb3Nl
c3RSdW4gPSBsYXN0TGluZVdpdGhDaGlsZHJlbi5jbG9zZXN0UnVuRm9yTG9naWNhbExlZnRQb3Np
dGlvbihwb2ludEluTG9naWNhbENvbnRlbnRzLngoKSk7CiAgICAgfQogCi0gICAgaWYgKGNsb3Nl
c3RCb3gpIHsKKyAgICBpZiAoY2xvc2VzdFJ1bikgewogICAgICAgICBpZiAobW92ZUNhcmV0VG9C
b3VuZGFyeSkgewotICAgICAgICAgICAgTGF5b3V0VW5pdCBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRy
ZW5Ub3AgPSBzdGQ6Om1pbihmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4tPnNlbGVjdGlvblRvcChS
b290SW5saW5lQm94OjpGb3JIaXRUZXN0aW5nOjpZZXMpLCBMYXlvdXRVbml0KGZpcnN0Um9vdEJv
eFdpdGhDaGlsZHJlbi0+bG9naWNhbFRvcCgpKSk7Ci0gICAgICAgICAgICBpZiAocG9pbnRJbkxv
Z2ljYWxDb250ZW50cy55KCkgPCBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW5Ub3AKLSAgICAgICAg
ICAgICAgICB8fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludEluTG9naWNhbENvbnRlbnRzLnko
KSA9PSBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW5Ub3ApKSB7Ci0gICAgICAgICAgICAgICAgSW5s
aW5lQm94KiBib3ggPSBmaXJzdFJvb3RCb3hXaXRoQ2hpbGRyZW4tPmZpcnN0TGVhZkRlc2NlbmRh
bnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoYm94LT5pc0xpbmVCcmVhaygpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChJbmxpbmVCb3gqIG5ld0JveCA9IGJveC0+bmV4dExlYWZPbkxpbmVJ
Z25vcmluZ0xpbmVCcmVhaygpKQotICAgICAgICAgICAgICAgICAgICAgICAgYm94ID0gbmV3Qm94
OworICAgICAgICAgICAgTGF5b3V0VW5pdCBmaXJzdExpbmVXaXRoQ2hpbGRyZW5Ub3AgPSBzdGQ6
Om1pbihmaXJzdExpbmVXaXRoQ2hpbGRyZW4tPnNlbGVjdGlvblRvcEZvckhpdFRlc3RpbmcoKSwg
TGF5b3V0VW5pdChmaXJzdExpbmVXaXRoQ2hpbGRyZW4tPnRvcCgpKSk7CisgICAgICAgICAgICBp
ZiAocG9pbnRJbkxvZ2ljYWxDb250ZW50cy55KCkgPCBmaXJzdExpbmVXaXRoQ2hpbGRyZW5Ub3AK
KyAgICAgICAgICAgICAgICB8fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludEluTG9naWNhbENv
bnRlbnRzLnkoKSA9PSBmaXJzdExpbmVXaXRoQ2hpbGRyZW5Ub3ApKSB7CisgICAgICAgICAgICAg
ICAgYXV0byBydW4gPSBmaXJzdExpbmVXaXRoQ2hpbGRyZW4uZmlyc3RSdW4oKTsKKyAgICAgICAg
ICAgICAgICBpZiAocnVuLT5pc0xpbmVCcmVhaygpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChhdXRvIG5leHQgPSBydW4ubmV4dE9uTGluZUlnbm9yaW5nTGluZUJyZWFrKCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICBydW4gPSBuZXh0OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAvLyB5IGNvb3JkaW5hdGUgaXMgYWJvdmUgZmlyc3Qgcm9vdCBsaW5lIGJveCwgc28g
cmV0dXJuIHRoZSBzdGFydCBvZiB0aGUgZmlyc3QKLSAgICAgICAgICAgICAgICByZXR1cm4gcG9z
aXRpb25Gb3JCb3goYm94LCB0cnVlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25G
b3JSdW4oKnRoaXMsIHJ1biwgdHJ1ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBwYXNzIHRoZSBib3ggYSB0b3AgcG9zaXRpb24gdGhhdCBpcyBpbnNpZGUgaXQKLSAg
ICAgICAgTGF5b3V0UG9pbnQgcG9pbnQocG9pbnRJbkxvZ2ljYWxDb250ZW50cy54KCksIGNsb3Nl
c3RCb3gtPnJvb3QoKS5ibG9ja0RpcmVjdGlvblBvaW50SW5MaW5lKCkpOworICAgICAgICBMYXlv
dXRQb2ludCBwb2ludChwb2ludEluTG9naWNhbENvbnRlbnRzLngoKSwgY2xvc2VzdFJ1bi5saW5l
KCktPmJsb2NrRGlyZWN0aW9uUG9pbnRJbkxpbmUoKSk7CiAgICAgICAgIGlmICghaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIHBvaW50ID0gcG9pbnQudHJhbnNwb3NlZFBv
aW50KCk7Ci0gICAgICAgIGlmIChjbG9zZXN0Qm94LT5yZW5kZXJlcigpLmlzUmVwbGFjZWQoKSkK
LSAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvclBvaW50UmVzcGVjdGluZ0VkaXRpbmdCb3Vu
ZGFyaWVzKCp0aGlzLCBkb3duY2FzdDxSZW5kZXJCb3g+KGNsb3Nlc3RCb3gtPnJlbmRlcmVyKCkp
LCBwb2ludCk7Ci0gICAgICAgIHJldHVybiBjbG9zZXN0Qm94LT5yZW5kZXJlcigpLnBvc2l0aW9u
Rm9yUG9pbnQocG9pbnQsIG51bGxwdHIpOworICAgICAgICBpZiAoY2xvc2VzdFJ1bi0+cmVuZGVy
ZXIoKS5pc1JlcGxhY2VkKCkpCisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25Gb3JQb2ludFJl
c3BlY3RpbmdFZGl0aW5nQm91bmRhcmllcygqdGhpcywgY29uc3RfY2FzdDxSZW5kZXJCb3gmPihk
b3duY2FzdDxSZW5kZXJCb3g+KGNsb3Nlc3RSdW4tPnJlbmRlcmVyKCkpKSwgcG9pbnQpOworICAg
ICAgICByZXR1cm4gY29uc3RfY2FzdDxSZW5kZXJPYmplY3QmPihjbG9zZXN0UnVuLT5yZW5kZXJl
cigpKS5wb3NpdGlvbkZvclBvaW50KHBvaW50LCBudWxscHRyKTsKICAgICB9CiAKLSAgICBpZiAo
bGFzdFJvb3RCb3hXaXRoQ2hpbGRyZW4pIHsKKyAgICBpZiAobGFzdExpbmVXaXRoQ2hpbGRyZW4p
IHsKICAgICAgICAgLy8gV2UgaGl0IHRoaXMgY2FzZSBmb3IgTWFjIGJlaGF2aW9yIHdoZW4gdGhl
IFkgY29vcmRpbmF0ZSBpcyBiZWxvdyB0aGUgbGFzdCBib3guCiAgICAgICAgIEFTU0VSVChtb3Zl
Q2FyZXRUb0JvdW5kYXJ5KTsKLSAgICAgICAgSW5saW5lQm94KiBsb2dpY2FsbHlMYXN0Qm94Owot
ICAgICAgICBpZiAobGFzdFJvb3RCb3hXaXRoQ2hpbGRyZW4tPmdldExvZ2ljYWxFbmRCb3hXaXRo
Tm9kZShsb2dpY2FsbHlMYXN0Qm94KSkKLSAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvckJv
eChsb2dpY2FsbHlMYXN0Qm94LCBmYWxzZSk7CisgICAgICAgIGlmIChhdXRvIGxvZ2ljYWxseUxh
c3RSdW4gPSBsYXN0TGluZVdpdGhDaGlsZHJlbi5sb2dpY2FsRW5kUnVuV2l0aE5vZGUoKSkKKyAg
ICAgICAgICAgIHJldHVybiBwb3NpdGlvbkZvclJ1bigqdGhpcywgbG9naWNhbGx5TGFzdFJ1biwg
ZmFsc2UpOwogICAgIH0KIAogICAgIC8vIENhbid0IHJlYWNoIHRoaXMuIFdlIGhhdmUgYSByb290
IGxpbmUgYm94LCBidXQgaXQgaGFzIG5vIGtpZHMuCkBAIC0zNDgzLDcgKzM0ODAsNiBAQCBWaXNp
YmxlUG9zaXRpb24gUmVuZGVyQmxvY2tGbG93Ojpwb3NpdGlvbkZvclBvaW50V2l0aElubGluZUNo
aWxkcmVuKGNvbnN0IExheW91dAogCiBQb3NpdGlvbiBSZW5kZXJCbG9ja0Zsb3c6OnBvc2l0aW9u
Rm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQogewotICAgIC8vIEZJWE1FOiBUaGlz
IGZvcmNlcyBDb21wbGV4IExpbmUgTGF5b3V0LgogICAgIHJldHVybiBwb3NpdGlvbkZvclBvaW50
KHBvaW50LCBudWxscHRyKS5kZWVwRXF1aXZhbGVudCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKaW5kZXggMTU2MmRhNmExOGY1Li4zZDliNTFmMjg4
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKQEAgLTUy
Nyw3ICs1MjcsNiBAQCBwcml2YXRlOgogICAgIEdhcFJlY3RzIGlubGluZVNlbGVjdGlvbkdhcHMo
UmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5b3V0UG9pbnQmIHJvb3RCbG9ja1BoeXNp
Y2FsUG9zaXRpb24sIGNvbnN0IExheW91dFNpemUmIG9mZnNldEZyb21Sb290QmxvY2ssCiAgICAg
ICAgIExheW91dFVuaXQmIGxhc3RMb2dpY2FsVG9wLCBMYXlvdXRVbml0JiBsYXN0TG9naWNhbExl
ZnQsIExheW91dFVuaXQmIGxhc3RMb2dpY2FsUmlnaHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25P
ZmZzZXRDYWNoZXMmLCBjb25zdCBQYWludEluZm8qKSBvdmVycmlkZTsKICAgICAKLSAgICBQb3Np
dGlvbiBwb3NpdGlvbkZvckJveChJbmxpbmVCb3gqLCBib29sIHN0YXJ0ID0gdHJ1ZSkgY29uc3Q7
CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4o
Y29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMsIGNvbnN0IFJlbmRlckZy
YWdtZW50Q29udGFpbmVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRGb2N1c1JpbmdSZWN0c0Zv
cklubGluZUNoaWxkcmVuKFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBv
aW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Kikgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5l
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAppbmRl
eCBmYjcwMzRhYTIyZDkuLjQ1YTQyYmJkNzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9Sb290SW5saW5lQm94LmNwcApAQCAtNzUwLDExICs3NTAsNiBAQCBMYXlvdXRVbml0IFJvb3RJ
bmxpbmVCb3g6OnNlbGVjdGlvbkJvdHRvbSgpIGNvbnN0CiAgICAgcmV0dXJuIG5leHRUb3A7CiB9
CiAKLWludCBSb290SW5saW5lQm94OjpibG9ja0RpcmVjdGlvblBvaW50SW5MaW5lKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gIWJsb2NrRmxvdygpLnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGlu
Z01vZGUoKSA/IHN0ZDo6bWF4KGxpbmVUb3AoKSwgc2VsZWN0aW9uVG9wKCkpIDogc3RkOjptaW4o
bGluZUJvdHRvbSgpLCBzZWxlY3Rpb25Cb3R0b20oKSk7Ci19Ci0KIFJlbmRlckJsb2NrRmxvdyYg
Um9vdElubGluZUJveDo6YmxvY2tGbG93KCkgY29uc3QKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8
UmVuZGVyQmxvY2tGbG93PihyZW5kZXJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9Sb290SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9v
dElubGluZUJveC5oCmluZGV4IDk3MmU3ZGEzYjBkZi4uOWUwNmE0MzAyNTQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKQEAgLTgwLDggKzgwLDYgQEAgcHVibGlj
OgogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygp
IGNvbnN0OwogICAgIExheW91dFVuaXQgc2VsZWN0aW9uSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRp
bmdCbG9jaygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KDAsIHNlbGVjdGlv
bkJvdHRvbSgpIC0gc2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpKTsgfQog
Ci0gICAgaW50IGJsb2NrRGlyZWN0aW9uUG9pbnRJbkxpbmUoKSBjb25zdDsKLQogICAgIExheW91
dFVuaXQgYWxpZ25Cb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5pdCBoZWlnaHRPZkJsb2Nr
LCBHbHlwaE92ZXJmbG93QW5kRmFsbGJhY2tGb250c01hcCYsIFZlcnRpY2FsUG9zaXRpb25DYWNo
ZSYpOwogICAgIHZvaWQgc2V0TGluZVRvcEJvdHRvbVBvc2l0aW9ucyhMYXlvdXRVbml0IHRvcCwg
TGF5b3V0VW5pdCBib3R0b20sIExheW91dFVuaXQgdG9wV2l0aExlYWRpbmcsIExheW91dFVuaXQg
Ym90dG9tV2l0aExlYWRpbmcpCiAgICAgeyAK
</data>

          </attachment>
      

    </bug>

</bugzilla>