<?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>281677</bug_id>
          
          <creation_ts>2024-10-17 11:16:07 -0700</creation_ts>
          <short_desc>[FFC][Integration] Take writing-mode into account when computing main/cross axis constraints</short_desc>
          <delta_ts>2024-10-18 05:09:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</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>2068822</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-10-17 11:16:07 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2068826</commentid>
    <comment_count>1</comment_count>
      <attachid>472969</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-10-17 11:26:04 -0700</bug_when>
    <thetext>Created attachment 472969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2068985</commentid>
    <comment_count>2</comment_count>
      <attachid>472976</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-10-17 19:21:30 -0700</bug_when>
    <thetext>Created attachment 472976
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2069090</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-10-18 05:08:59 -0700</bug_when>
    <thetext>Committed 285392@main (1335f905255a): &lt;https://commits.webkit.org/285392@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 472976.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2069091</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-10-18 05:09:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/138179439&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472969</attachid>
            <date>2024-10-17 11:26:04 -0700</date>
            <delta_ts>2024-10-17 19:21:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-281677-20241017112603.patch</filename>
            <type>text/plain</type>
            <size>12443</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzYjQ2YzY2MWU1YTczMDQ4YzYwYjFjODUwMTcwODViNzNiNDJmNzlkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMTcgT2N0IDIwMjQgMTE6MTU6MTggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbRkZDXVtJ
bnRlZ3JhdGlvbl0gVGFrZSB3cml0aW5nLW1vZGUgaW50byBhY2NvdW50IHdoZW4KIGNvbXB1dGlu
ZyBtYWluL2Nyb3NzIGF4aXMgY29uc3RyYWludHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yODE2NzcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKMS4gTW92
ZSBjb25zdHJhaW50IGNvbXB1dGF0aW9uIHRvIGEgZGVkaWNhdGVkIGZ1bmN0aW9uLgoyLiBUYWtl
IHdyaXRpbmctbW9kZSBpbnRvIGFjY291bnQgc28gdGhhdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQg
c2VlcwogIG1haW4gYXhpcyBjb25zdHJhaW50IC0+IHRoZSBtYWluIGRpcmVjdGlvbiBmbGV4IGl0
ZW1zIGFyZSBwbGFjZWQKICBjcm9zcyBheGlzIGNvbnN0cmFpbnQgLT4gdGhlIGNyb3NzIGRpcmVj
dGlvbiBmbGV4IGl0ZW1zIGFyZSBwbGFjZWQKCmUuZy4KICA8ZmxleCBjb250YWluZXIgc3R5bGU9
IndyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+
CiAgICA8ZmxleCBpdGVtPgogIG1haW4gY29uc3RyYWludCAtPiA1MHB4CiAgY3Jvc3MgY29uc3Ry
YWludCAtPiAxMDBweAogIChhc3N1bWluZyBpbml0aWFsIHZhbHVlIG9mIGZsZXgtZGlyZWN0aW9u
OiByb3cpCgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1mbGV4Ym94L2ZsZXhib3gtd3JpdGluZy1tb2RlLTAwMi5odG1sOgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5j
cHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Y29uc3RyYWludHNGb3JGbGV4Q29udGVu
dCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6dXBkYXRlRm9ybWF0
dGluZ0NvbnRleEdlb21ldHJpZXMpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhM
YXlvdXQ6OmxheW91dCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6ZmxleEJveExvZ2lj
YWxCb3JkZXIpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmZsZXhCb3hM
b2dpY2FsUGFkZGluZyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0Lmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxl
Qm94OjpsYXlvdXRVc2luZ0ZsZXhGb3JtYXR0aW5nQ29udGV4dCk6Ci0tLQogLi4uL2ZsZXgvTGF5
b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmNwcCAgICAgIHwgMTIwICsrKysrKysrLS0tLS0tLS0t
LQogLi4uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmggICAgICAgIHwgICAyICst
CiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwICAgfCAgIDIgKy0K
IDMgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50
ZWdyYXRpb25GbGV4TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5jcHAKaW5kZXggMzk1MWRmNzFhNjdk
Li42MjE0OTM3YTc4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0
LmNwcApAQCAtNTYsMzMgKzU2LDY2IEBAIEZsZXhMYXlvdXQ6On5GbGV4TGF5b3V0KCkKIHsKIH0K
IAotLy8gRklYTUU6IE1lcmdlIHRoZXNlIHdpdGggdGhlIG90aGVyIGludGVncmF0aW9uIGxheW91
dCBmdW5jdGlvbnMuCi1zdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIGZs
ZXhCb3hMb2dpY2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlciwg
Ym9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBGbG93RGlyZWN0aW9uIGJsb2NrRmxv
d0RpcmVjdGlvbikKK3N0YXRpYyBpbmxpbmUgTGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250
ZW50IGNvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQoY29uc3QgTGF5b3V0OjpFbGVtZW50Qm94JiBm
bGV4Q29udGFpbmVyKQogewotICAgIFVOVVNFRF9QQVJBTShpc0xlZnRUb1JpZ2h0SW5saW5lRGly
ZWN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oYmxvY2tGbG93RGlyZWN0aW9uKTsKKyAgICBhdXRv
JiBmbGV4Q29udGFpbmVyUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJGbGV4aWJsZUJveD4oKmZs
ZXhDb250YWluZXIucmVuZGVyZXJGb3JJbnRlZ3JhdGlvbigpKTsKKyAgICBhdXRvJiBmbGV4Qm94
U3R5bGUgPSBmbGV4Q29udGFpbmVyLnN0eWxlKCk7CisgICAgYXV0byBpc01haW5BeGlzUGFyYWxs
ZWxXaXRoSW5saW5lQXhpcyA9IExheW91dDo6RmxleEZvcm1hdHRpbmdVdGlsczo6aXNNYWluQXhp
c1BhcmFsbGVsV2l0aElubGluZUF4aXMoZmxleENvbnRhaW5lcik7CisgICAgYXV0byBpc0hvcml6
b250YWxXcml0aW5nTW9kZSA9IGZsZXhCb3hTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
OworICAgIGF1dG8gYm94U2l6aW5nSXNDb250ZW50Qm94ID0gZmxleEJveFN0eWxlLmJveFNpemlu
ZygpID09IEJveFNpemluZzo6Q29udGVudEJveDsKKyAgICAvLyBGSVhNRTogVXNlIHJvb3QncyBC
b3hHZW9tZXRyeSB3aGljaCBmaXJzdCBuZWVkcyB0byBzdG9wIGZsaXBwaW5nIGZvciB0aGUgZm9y
bWF0dGluZyBjb250ZXh0LgorICAgIGF1dG8gaG9yaXpvbnRhbGxNYXJnaW5Cb3JkZXJBbmRQYWRk
aW5nID0gZmxleENvbnRhaW5lclJlbmRlcmVyLm1hcmdpbkFuZEJvcmRlckFuZFBhZGRpbmdTdGFy
dCgpICsgZmxleENvbnRhaW5lclJlbmRlcmVyLm1hcmdpbkFuZEJvcmRlckFuZFBhZGRpbmdFbmQo
KTsKKyAgICBhdXRvIHZlcnRpY2FsTWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9IGZsZXhDb250YWlu
ZXJSZW5kZXJlci5tYXJnaW5BbmRCb3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBmbGV4Q29udGFp
bmVyUmVuZGVyZXIubWFyZ2luQW5kQm9yZGVyQW5kUGFkZGluZ0FmdGVyKCk7CisKKyAgICBhdXRv
IHdpZHRoVmFsdWUgPSBbJl0oYXV0byYgY29tcHV0ZWRWYWx1ZSkgLT4gc3RkOjpvcHRpb25hbDxM
YXlvdXRVbml0PiB7CisgICAgICAgIGlmIChjb21wdXRlZFZhbHVlLmlzRml4ZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXNDb250ZW50Qm94ID8gY29tcHV0
ZWRWYWx1ZS52YWx1ZSgpIDogY29tcHV0ZWRWYWx1ZS52YWx1ZSgpIC0gaG9yaXpvbnRhbGxNYXJn
aW5Cb3JkZXJBbmRQYWRkaW5nIH07CisKKyAgICAgICAgaWYgKGNvbXB1dGVkVmFsdWUuaXNQZXJj
ZW50KCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB2YWx1ZUZvckxlbmd0aChjb21wdXRl
ZFZhbHVlLCBmbGV4Q29udGFpbmVyUmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCktPmxvZ2ljYWxX
aWR0aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXNDb250
ZW50Qm94ID8gdmFsdWUgOiB2YWx1ZSAtIGhvcml6b250YWxsTWFyZ2luQm9yZGVyQW5kUGFkZGlu
ZyB9OworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfTsKIAotICAgIGF1dG8g
Ym9yZGVyTGVmdCA9IHJlbmRlcmVyLmJvcmRlckxlZnQoKTsKLSAgICBhdXRvIGJvcmRlclJpZ2h0
ID0gcmVuZGVyZXIuYm9yZGVyUmlnaHQoKTsKLSAgICBhdXRvIGJvcmRlclRvcCA9IHJlbmRlcmVy
LmJvcmRlclRvcCgpOwotICAgIGF1dG8gYm9yZGVyQm90dG9tID0gcmVuZGVyZXIuYm9yZGVyQm90
dG9tKCk7CisgICAgYXV0byBoZWlnaHRWYWx1ZSA9IFsmXShhdXRvJiBjb21wdXRlZFZhbHVlLCBi
b29sIGNhbGxSZW5kZXJlckZvclBlcmNlbnRWYWx1ZSA9IGZhbHNlKSAtPiBzdGQ6Om9wdGlvbmFs
PExheW91dFVuaXQ+IHsKKyAgICAgICAgaWYgKGNvbXB1dGVkVmFsdWUuaXNGaXhlZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIExheW91dFVuaXQgeyBib3hTaXppbmdJc0NvbnRlbnRCb3ggPyBjb21w
dXRlZFZhbHVlLnZhbHVlKCkgOiBjb21wdXRlZFZhbHVlLnZhbHVlKCkgLSB2ZXJ0aWNhbE1hcmdp
bkJvcmRlckFuZFBhZGRpbmcgfTsKIAotICAgIHJldHVybiB7IHsgYm9yZGVyTGVmdCwgYm9yZGVy
UmlnaHQgfSwgeyBib3JkZXJUb3AsIGJvcmRlckJvdHRvbSB9IH07Ci19CisgICAgICAgIGlmIChj
b21wdXRlZFZhbHVlLmlzUGVyY2VudCgpKSB7CisgICAgICAgICAgICBpZiAoY2FsbFJlbmRlcmVy
Rm9yUGVyY2VudFZhbHVlKQorICAgICAgICAgICAgICAgIHJldHVybiBmbGV4Q29udGFpbmVyUmVu
ZGVyZXIuY29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbXB1dGVkVmFsdWUsIFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpVcGRhdGVQZXJjZW50YWdlSGVpZ2h0RGVzY2VuZGFudHM6Ok5vKTsK
IAotc3RhdGljIGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBmbGV4Qm94TG9naWNh
bFBhZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBib29sIGlzTGVm
dFRvUmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24gYmxvY2tGbG93RGlyZWN0aW9u
KQotewotICAgIFVOVVNFRF9QQVJBTShpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKLSAg
ICBVTlVTRURfUEFSQU0oYmxvY2tGbG93RGlyZWN0aW9uKTsKKyAgICAgICAgICAgIGlmIChmbGV4
Q29udGFpbmVyUmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCktPnN0eWxlKCkubG9naWNhbEhlaWdo
dCgpLmlzRml4ZWQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB2YWx1ZUZvckxl
bmd0aChjb21wdXRlZFZhbHVlLCBmbGV4Q29udGFpbmVyUmVuZGVyZXIuY29udGFpbmluZ0Jsb2Nr
KCktPnN0eWxlKCkuaGVpZ2h0KCkudmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIExh
eW91dFVuaXQgeyBib3hTaXppbmdJc0NvbnRlbnRCb3ggPyB2YWx1ZSA6IHZhbHVlIC0gdmVydGlj
YWxNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9OwogCi0gICAgYXV0byBwYWRkaW5nID0gcmVuZGVyZXIu
cGFkZGluZygpOwotICAgIHJldHVybiB7IHsgcGFkZGluZy5sZWZ0KCksIHBhZGRpbmcucmlnaHQo
KSB9LCB7IHBhZGRpbmcudG9wKCksIHBhZGRpbmcuYm90dG9tKCkgfSB9OworICAgIGF1dG8gd2lk
dGhHZW9tZXRyeSA9IFsmXSgpIC0+IExheW91dDo6Q29uc3RyYWludHNGb3JGbGV4Q29udGVudDo6
QXhpc0dlb21ldHJ5IHsKKyAgICAgICAgcmV0dXJuIHsgd2lkdGhWYWx1ZShmbGV4Qm94U3R5bGUu
bWluV2lkdGgoKSksIHdpZHRoVmFsdWUoZmxleEJveFN0eWxlLm1heFdpZHRoKCkpLCB3aWR0aFZh
bHVlKGZsZXhCb3hTdHlsZS53aWR0aCgpKSwgZmxleENvbnRhaW5lclJlbmRlcmVyLmNvbnRlbnRC
b3hMb2NhdGlvbigpLngoKSB9OworICAgIH07CisKKyAgICBhdXRvIGhlaWdodEdlb21ldHJ5ID0g
WyZdKCkgLT4gTGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50OjpBeGlzR2VvbWV0cnkg
eworICAgICAgICBhdXRvIGF2YWlsYWJsZVNpemUgPSBoZWlnaHRWYWx1ZShmbGV4Qm94U3R5bGUu
aGVpZ2h0KCksIHRydWUpOworICAgICAgICBhdXRvIGxvZ2ljYWxNaW5IZWlnaHQgPSBoZWlnaHRW
YWx1ZShmbGV4Qm94U3R5bGUubWluSGVpZ2h0KCkpLnZhbHVlX29yKDBfbHUpOworICAgICAgICBh
dXRvIGxvZ2ljYWxNYXhIZWlnaHQgPSBoZWlnaHRWYWx1ZShmbGV4Qm94U3R5bGUubWF4SGVpZ2h0
KCkpOworICAgICAgICBpZiAoIWF2YWlsYWJsZVNpemUgfHwgKGxvZ2ljYWxNYXhIZWlnaHQgJiYg
KmxvZ2ljYWxNYXhIZWlnaHQgPCAqYXZhaWxhYmxlU2l6ZSkpCisgICAgICAgICAgICBhdmFpbGFi
bGVTaXplID0gbG9naWNhbE1heEhlaWdodDsKKworICAgICAgICByZXR1cm4gTGF5b3V0OjpDb25z
dHJhaW50c0ZvckZsZXhDb250ZW50OjpBeGlzR2VvbWV0cnkgeyBsb2dpY2FsTWluSGVpZ2h0LCBs
b2dpY2FsTWF4SGVpZ2h0LCBhdmFpbGFibGVTaXplLCBmbGV4Q29udGFpbmVyUmVuZGVyZXIuY29u
dGVudEJveExvY2F0aW9uKCkueSgpIH07CisgICAgfTsKKworICAgIGF1dG8gaXNQYXJlbnRGb3Jt
YXR0aW5nQ29udGV4dElubGluZURpcmVjdGlvblBhcmFsbGVsV2l0aE1haW5BeGlzID0gKGlzTWFp
bkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKSB8
fCAoIWlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzICYmICFpc0hvcml6b250YWxXcml0
aW5nTW9kZSk7CisgICAgcmV0dXJuIGlzUGFyZW50Rm9ybWF0dGluZ0NvbnRleHRJbmxpbmVEaXJl
Y3Rpb25QYXJhbGxlbFdpdGhNYWluQXhpcyA/IExheW91dDo6Q29uc3RyYWludHNGb3JGbGV4Q29u
dGVudCh3aWR0aEdlb21ldHJ5KCksIGhlaWdodEdlb21ldHJ5KCksIGZhbHNlKSA6IExheW91dDo6
Q29uc3RyYWludHNGb3JGbGV4Q29udGVudChoZWlnaHRHZW9tZXRyeSgpLCB3aWR0aEdlb21ldHJ5
KCksIGZhbHNlKTsKIH0KIAotdm9pZCBGbGV4TGF5b3V0Ojp1cGRhdGVGb3JtYXR0aW5nQ29udGV4
R2VvbWV0cmllcyhMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCkKK3ZvaWQgRmxleExh
eW91dDo6dXBkYXRlRm9ybWF0dGluZ0NvbnRleEdlb21ldHJpZXMoKQogewogICAgIGF1dG8gYm94
R2VvbWV0cnlVcGRhdGVyID0gQm94R2VvbWV0cnlVcGRhdGVyIHsgbGF5b3V0U3RhdGUoKSwgZmxl
eEJveCgpIH07Ci0gICAgYm94R2VvbWV0cnlVcGRhdGVyLnNldEZvcm1hdHRpbmdDb250ZXh0Um9v
dEdlb21ldHJ5KGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCk7CisgICAgYm94R2VvbWV0cnlVcGRhdGVy
LnNldEZvcm1hdHRpbmdDb250ZXh0Um9vdEdlb21ldHJ5KGZsZXhCb3hSZW5kZXJlcigpLmNvbnRh
aW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKSk7CiAgICAgYm94R2VvbWV0cnlV
cGRhdGVyLnNldEZvcm1hdHRpbmdDb250ZXh0Q29udGVudEdlb21ldHJ5KGxheW91dFN0YXRlKCku
Z2VvbWV0cnlGb3JCb3goZmxleEJveCgpKS5jb250ZW50Qm94V2lkdGgoKSwgeyB9KTsKIH0KIApA
QCAtMTAwLDU2ICsxMzMsNyBAQCBzdGQ6OnBhaXI8TGF5b3V0VW5pdCwgTGF5b3V0VW5pdD4gRmxl
eExheW91dDo6Y29tcHV0ZUludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKQogCiB2b2lkIEZsZXhM
YXlvdXQ6OmxheW91dCgpCiB7Ci0gICAgYXV0byYgcm9vdEdlb21ldHJ5ID0gbGF5b3V0U3RhdGUo
KS5nZW9tZXRyeUZvckJveChmbGV4Qm94KCkpOwotICAgIGF1dG8mIGZsZXhCb3hTdHlsZSA9IGZs
ZXhCb3goKS5zdHlsZSgpOwotCi0gICAgYXV0byBsb2dpY2FsSG9yaXpvbnRhbEdlb21ldHJ5ID0g
WyZdIHsKLSAgICAgICAgYXV0byB3aWR0aFZhbHVlID0gWyZdKGF1dG8mIGNvbXB1dGVkVmFsdWUp
IC0+IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gewotICAgICAgICAgICAgYXV0byBib3hTaXpp
bmdJc0NvbnRlbnRCb3ggPSBmbGV4Qm94U3R5bGUuYm94U2l6aW5nKCkgPT0gQm94U2l6aW5nOjpD
b250ZW50Qm94OwotICAgICAgICAgICAgaWYgKGNvbXB1dGVkVmFsdWUuaXNGaXhlZCgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXNDb250ZW50Qm94ID8g
Y29tcHV0ZWRWYWx1ZS52YWx1ZSgpIDogY29tcHV0ZWRWYWx1ZS52YWx1ZSgpIC0gcm9vdEdlb21l
dHJ5Lmhvcml6b250YWxNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKCkgfTsKLQotICAgICAgICAgICAg
aWYgKGNvbXB1dGVkVmFsdWUuaXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHZh
bHVlID0gdmFsdWVGb3JMZW5ndGgoY29tcHV0ZWRWYWx1ZSwgZmxleEJveFJlbmRlcmVyKCkuY29u
dGFpbmluZ0Jsb2NrKCktPmxvZ2ljYWxXaWR0aCgpKTsKLSAgICAgICAgICAgICAgICByZXR1cm4g
TGF5b3V0VW5pdCB7IGJveFNpemluZ0lzQ29udGVudEJveCA/IHZhbHVlIDogdmFsdWUgLSByb290
R2VvbWV0cnkuaG9yaXpvbnRhbE1hcmdpbkJvcmRlckFuZFBhZGRpbmcoKSB9OwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICByZXR1cm4geyB9OwotICAgICAgICB9OwotICAgICAgICByZXR1
cm4gTGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50OjpBeGlzR2VvbWV0cnkgeyB3aWR0
aFZhbHVlKGZsZXhCb3hTdHlsZS5sb2dpY2FsTWluV2lkdGgoKSksIHdpZHRoVmFsdWUoZmxleEJv
eFN0eWxlLmxvZ2ljYWxNYXhXaWR0aCgpKSwgcm9vdEdlb21ldHJ5LmNvbnRlbnRCb3hXaWR0aCgp
LCByb290R2VvbWV0cnkuY29udGVudEJveExlZnQoKSB9OwotICAgIH07Ci0KLSAgICBhdXRvIGxv
Z2ljYWxWZXJ0aWNhbEdlb21ldHJ5ID0gWyZdKCkgewotICAgICAgICBhdXRvIGhlaWdodFZhbHVl
ID0gWyZdKGF1dG8mIGNvbXB1dGVkVmFsdWUsIGJvb2wgY2FsbFJlbmRlcmVyRm9yUGVyY2VudFZh
bHVlID0gZmFsc2UpIC0+IHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gewotICAgICAgICAgICAg
YXV0byBib3hTaXppbmdJc0NvbnRlbnRCb3ggPSBmbGV4Qm94U3R5bGUuYm94U2l6aW5nKCkgPT0g
Qm94U2l6aW5nOjpDb250ZW50Qm94OwotICAgICAgICAgICAgaWYgKGNvbXB1dGVkVmFsdWUuaXNG
aXhlZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXND
b250ZW50Qm94ID8gY29tcHV0ZWRWYWx1ZS52YWx1ZSgpIDogY29tcHV0ZWRWYWx1ZS52YWx1ZSgp
IC0gcm9vdEdlb21ldHJ5LnZlcnRpY2FsTWFyZ2luQm9yZGVyQW5kUGFkZGluZygpIH07Ci0KLSAg
ICAgICAgICAgIGlmIChjb21wdXRlZFZhbHVlLmlzUGVyY2VudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGNhbGxSZW5kZXJlckZvclBlcmNlbnRWYWx1ZSkKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZsZXhCb3hSZW5kZXJlcigpLmNvbXB1dGVQZXJjZW50YWdlTG9naWNhbEhlaWdodChj
b21wdXRlZFZhbHVlLCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6VXBkYXRlUGVyY2VudGFnZUhlaWdo
dERlc2NlbmRhbnRzOjpObyk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoZmxleEJveFJlbmRlcmVy
KCkuY29udGFpbmluZ0Jsb2NrKCktPnN0eWxlKCkubG9naWNhbEhlaWdodCgpLmlzRml4ZWQoKSkg
ewotICAgICAgICAgICAgICAgICAgICBhdXRvIHZhbHVlID0gdmFsdWVGb3JMZW5ndGgoY29tcHV0
ZWRWYWx1ZSwgZmxleEJveFJlbmRlcmVyKCkuY29udGFpbmluZ0Jsb2NrKCktPnN0eWxlKCkubG9n
aWNhbEhlaWdodCgpLnZhbHVlKCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTGF5b3V0
VW5pdCB7IGJveFNpemluZ0lzQ29udGVudEJveCA/IHZhbHVlIDogdmFsdWUgLSByb290R2VvbWV0
cnkudmVydGljYWxNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nKCkgfTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiB7IH07Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgYXV0byBhdmFpbGFibGVTaXplID0gaGVpZ2h0VmFsdWUoZmxleEJveFN0eWxlLmxv
Z2ljYWxIZWlnaHQoKSwgdHJ1ZSk7Ci0gICAgICAgIGF1dG8gbG9naWNhbE1pbkhlaWdodCA9IGhl
aWdodFZhbHVlKGZsZXhCb3hTdHlsZS5sb2dpY2FsTWluSGVpZ2h0KCkpLnZhbHVlX29yKDBfbHUp
OwotICAgICAgICBhdXRvIGxvZ2ljYWxNYXhIZWlnaHQgPSBoZWlnaHRWYWx1ZShmbGV4Qm94U3R5
bGUubG9naWNhbE1heEhlaWdodCgpKTsKLSAgICAgICAgaWYgKCFhdmFpbGFibGVTaXplIHx8IChs
b2dpY2FsTWF4SGVpZ2h0ICYmICpsb2dpY2FsTWF4SGVpZ2h0IDwgKmF2YWlsYWJsZVNpemUpKQot
ICAgICAgICAgICAgYXZhaWxhYmxlU2l6ZSA9IGxvZ2ljYWxNYXhIZWlnaHQ7Ci0KLSAgICAgICAg
cmV0dXJuIExheW91dDo6Q29uc3RyYWludHNGb3JGbGV4Q29udGVudDo6QXhpc0dlb21ldHJ5IHsg
bG9naWNhbE1pbkhlaWdodCwgbG9naWNhbE1heEhlaWdodCwgYXZhaWxhYmxlU2l6ZSwgcm9vdEdl
b21ldHJ5LmNvbnRlbnRCb3hUb3AoKSB9OwotICAgIH07Ci0KLSAgICBhdXRvIGNvbnN0cmFpbnRz
ID0gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1V0aWxzOjppc01haW5BeGlzUGFyYWxsZWxXaXRoSW5s
aW5lQXhpcyhmbGV4Qm94KCkpID8gTGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50KGxv
Z2ljYWxIb3Jpem9udGFsR2VvbWV0cnkoKSwgbG9naWNhbFZlcnRpY2FsR2VvbWV0cnkoKSwgZmFs
c2UpIDogTGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50KGxvZ2ljYWxWZXJ0aWNhbEdl
b21ldHJ5KCksIGxvZ2ljYWxIb3Jpem9udGFsR2VvbWV0cnkoKSwgZmFsc2UpOwotICAgIGF1dG8g
ZmxleEZvcm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQgeyBm
bGV4Qm94KCksIGxheW91dFN0YXRlKCkgfTsKLSAgICBmbGV4Rm9ybWF0dGluZ0NvbnRleHQubGF5
b3V0KGNvbnN0cmFpbnRzKTsKKyAgICBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7IGZs
ZXhCb3goKSwgbGF5b3V0U3RhdGUoKSB9LmxheW91dChjb25zdHJhaW50c0ZvckZsZXhDb250ZW50
KGZsZXhCb3goKSkpOwogCiAgICAgdXBkYXRlUmVuZGVyZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxl
eExheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0
SW50ZWdyYXRpb25GbGV4TGF5b3V0LmgKaW5kZXggNmQ4YTE0NTE1NjFmLi4yZDEwZDdhODE5YTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91
dEludGVncmF0aW9uRmxleExheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5oCkBAIC01MCw3ICs1MCw3
IEBAIHB1YmxpYzoKICAgICBGbGV4TGF5b3V0KFJlbmRlckZsZXhpYmxlQm94Jik7CiAgICAgfkZs
ZXhMYXlvdXQoKTsKIAotICAgIHZvaWQgdXBkYXRlRm9ybWF0dGluZ0NvbnRleEdlb21ldHJpZXMo
TGF5b3V0VW5pdCBhdmFpbGFibGVMb2dpY2FsV2lkdGgpOworICAgIHZvaWQgdXBkYXRlRm9ybWF0
dGluZ0NvbnRleEdlb21ldHJpZXMoKTsKICAgICB2b2lkIHVwZGF0ZVN0eWxlKGNvbnN0IFJlbmRl
ckJsb2NrJiwgY29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlKTsKIAogICAgIHN0ZDo6cGFpcjxM
YXlvdXRVbml0LCBMYXlvdXRVbml0PiBjb21wdXRlSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5k
ZXggOGVjYWVhY2ZlMzU1Li4zNmM0NmYzMWMwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMjY3OSw3ICsyNjc5LDcgQEAgYm9vbCBS
ZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0VXNpbmdGbGV4Rm9ybWF0dGluZ0NvbnRleHQoKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIGZsZXhMYXlvdXQgPSBMYXlvdXRJbnRlZ3Jh
dGlvbjo6RmxleExheW91dCB7ICp0aGlzIH07Ci0gICAgZmxleExheW91dC51cGRhdGVGb3JtYXR0
aW5nQ29udGV4R2VvbWV0cmllcyhjb250YWluaW5nQmxvY2soKSA/IGNvbnRhaW5pbmdCbG9jaygp
LT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoKSk7CisgICAgZmxleExheW91
dC51cGRhdGVGb3JtYXR0aW5nQ29udGV4R2VvbWV0cmllcygpOwogCiAgICAgZmxleExheW91dC5s
YXlvdXQoKTsKICAgICBzZXRMb2dpY2FsSGVpZ2h0KHN0ZDo6bWF4KGxvZ2ljYWxIZWlnaHQoKSwg
Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSArIGZsZXhMYXlvdXQuY29udGVudEJveExv
Z2ljYWxIZWlnaHQoKSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472976</attachid>
            <date>2024-10-17 19:21:30 -0700</date>
            <delta_ts>2024-10-18 05:09:00 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-281677-20241017192130.patch</filename>
            <type>text/plain</type>
            <size>12187</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzY2ZmMGU1NWU3ZTYwMWNkNWNhZDQyZDM0NzkzYTFlYzI5OTkyYzZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMTcgT2N0IDIwMjQgMTE6MTU6MTggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbRkZDXVtJ
bnRlZ3JhdGlvbl0gVGFrZSB3cml0aW5nLW1vZGUgaW50byBhY2NvdW50IHdoZW4KIGNvbXB1dGlu
ZyBtYWluL2Nyb3NzIGF4aXMgY29uc3RyYWludHMKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yODE2NzcKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKMS4gTW92
ZSBjb25zdHJhaW50IGNvbXB1dGF0aW9uIHRvIGEgZGVkaWNhdGVkIGZ1bmN0aW9uLgoyLiBUYWtl
IHdyaXRpbmctbW9kZSBpbnRvIGFjY291bnQgc28gdGhhdCBGbGV4Rm9ybWF0dGluZ0NvbnRleHQg
c2VlcwogIG1haW4gYXhpcyBjb25zdHJhaW50IC0+IHRoZSBtYWluIGRpcmVjdGlvbiBmbGV4IGl0
ZW1zIGFyZSBwbGFjZWQKICBjcm9zcyBheGlzIGNvbnN0cmFpbnQgLT4gdGhlIGNyb3NzIGRpcmVj
dGlvbiBmbGV4IGl0ZW1zIGFyZSBwbGFjZWQKCmUuZy4KICA8ZmxleCBjb250YWluZXIgc3R5bGU9
IndyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyI+
CiAgICA8ZmxleCBpdGVtPgogIG1haW4gY29uc3RyYWludCAtPiA1MHB4CiAgY3Jvc3MgY29uc3Ry
YWludCAtPiAxMDBweAogIChhc3N1bWluZyBpbml0aWFsIHZhbHVlIG9mIGZsZXgtZGlyZWN0aW9u
OiByb3cpCgoqIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1mbGV4Ym94L2ZsZXhib3gtd3JpdGluZy1tb2RlLTAwMi5odG1sOgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5j
cHA6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6Y29uc3RyYWludHNGb3JGbGV4Q29udGVu
dCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6RmxleExheW91dDo6dXBkYXRlRm9ybWF0
dGluZ0NvbnRleEdlb21ldHJpZXMpOgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkZsZXhM
YXlvdXQ6OmxheW91dCk6CihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6ZmxleEJveExvZ2lj
YWxCb3JkZXIpOiBEZWxldGVkLgooV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmZsZXhCb3hM
b2dpY2FsUGFkZGluZyk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0Lmg6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxl
Qm94OjpsYXlvdXRVc2luZ0ZsZXhGb3JtYXR0aW5nQ29udGV4dCk6Ci0tLQogLi4uL2ZsZXgvTGF5
b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmNwcCAgICAgIHwgMTE4ICsrKysrKysrLS0tLS0tLS0t
LQogLi4uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmggICAgICAgIHwgICAyICst
CiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwICAgfCAgIDIgKy0K
IDMgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50
ZWdyYXRpb25GbGV4TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5jcHAKaW5kZXggMzk1MWRmNzFhNjdk
Li42M2M1OWNkNmVmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9mbGV4L0xheW91dEludGVncmF0aW9uRmxleExheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0
LmNwcApAQCAtNTYsMzMgKzU2LDY0IEBAIEZsZXhMYXlvdXQ6On5GbGV4TGF5b3V0KCkKIHsKIH0K
IAotLy8gRklYTUU6IE1lcmdlIHRoZXNlIHdpdGggdGhlIG90aGVyIGludGVncmF0aW9uIGxheW91
dCBmdW5jdGlvbnMuCi1zdGF0aWMgaW5saW5lIExheW91dDo6Qm94R2VvbWV0cnk6OkVkZ2VzIGZs
ZXhCb3hMb2dpY2FsQm9yZGVyKGNvbnN0IFJlbmRlckJveE1vZGVsT2JqZWN0JiByZW5kZXJlciwg
Ym9vbCBpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uLCBGbG93RGlyZWN0aW9uIGJsb2NrRmxv
d0RpcmVjdGlvbikKK3N0YXRpYyBpbmxpbmUgTGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250
ZW50IGNvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQoY29uc3QgTGF5b3V0OjpFbGVtZW50Qm94JiBm
bGV4Q29udGFpbmVyKQogewotICAgIFVOVVNFRF9QQVJBTShpc0xlZnRUb1JpZ2h0SW5saW5lRGly
ZWN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oYmxvY2tGbG93RGlyZWN0aW9uKTsKKyAgICBhdXRv
JiBmbGV4Q29udGFpbmVyUmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJGbGV4aWJsZUJveD4oKmZs
ZXhDb250YWluZXIucmVuZGVyZXJGb3JJbnRlZ3JhdGlvbigpKTsKKyAgICBhdXRvJiBmbGV4Qm94
U3R5bGUgPSBmbGV4Q29udGFpbmVyLnN0eWxlKCk7CisgICAgYXV0byBib3hTaXppbmdJc0NvbnRl
bnRCb3ggPSBmbGV4Qm94U3R5bGUuYm94U2l6aW5nKCkgPT0gQm94U2l6aW5nOjpDb250ZW50Qm94
OworICAgIGF1dG8gYXZhaWxhYmxlTG9naWNhbFdpZHRoID0gZmxleENvbnRhaW5lclJlbmRlcmVy
LmNvbnRlbnRCb3hSZWN0KCkud2lkdGgoKTsKKyAgICAvLyBGSVhNRTogVXNlIHJvb3QncyBCb3hH
ZW9tZXRyeSB3aGljaCBmaXJzdCBuZWVkcyB0byBzdG9wIGZsaXBwaW5nIGZvciB0aGUgZm9ybWF0
dGluZyBjb250ZXh0LgorICAgIGF1dG8gaG9yaXpvbnRhbGxNYXJnaW5Cb3JkZXJBbmRQYWRkaW5n
ID0gZmxleENvbnRhaW5lclJlbmRlcmVyLm1hcmdpbkFuZEJvcmRlckFuZFBhZGRpbmdTdGFydCgp
ICsgZmxleENvbnRhaW5lclJlbmRlcmVyLm1hcmdpbkFuZEJvcmRlckFuZFBhZGRpbmdFbmQoKTsK
KyAgICBhdXRvIHZlcnRpY2FsTWFyZ2luQm9yZGVyQW5kUGFkZGluZyA9IGZsZXhDb250YWluZXJS
ZW5kZXJlci5tYXJnaW5BbmRCb3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBmbGV4Q29udGFpbmVy
UmVuZGVyZXIubWFyZ2luQW5kQm9yZGVyQW5kUGFkZGluZ0FmdGVyKCk7CisKKyAgICBhdXRvIHdp
ZHRoVmFsdWUgPSBbJl0oYXV0byYgY29tcHV0ZWRWYWx1ZSkgLT4gc3RkOjpvcHRpb25hbDxMYXlv
dXRVbml0PiB7CisgICAgICAgIGlmIChjb21wdXRlZFZhbHVlLmlzRml4ZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXNDb250ZW50Qm94ID8gY29tcHV0ZWRW
YWx1ZS52YWx1ZSgpIDogY29tcHV0ZWRWYWx1ZS52YWx1ZSgpIC0gaG9yaXpvbnRhbGxNYXJnaW5C
b3JkZXJBbmRQYWRkaW5nIH07CisKKyAgICAgICAgaWYgKGNvbXB1dGVkVmFsdWUuaXNQZXJjZW50
KCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB2YWx1ZUZvckxlbmd0aChjb21wdXRlZFZh
bHVlLCBmbGV4Q29udGFpbmVyUmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCktPmxvZ2ljYWxXaWR0
aCgpKTsKKyAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXNDb250ZW50
Qm94ID8gdmFsdWUgOiB2YWx1ZSAtIGhvcml6b250YWxsTWFyZ2luQm9yZGVyQW5kUGFkZGluZyB9
OworICAgICAgICB9CisgICAgICAgIHJldHVybiB7IH07CisgICAgfTsKIAotICAgIGF1dG8gYm9y
ZGVyTGVmdCA9IHJlbmRlcmVyLmJvcmRlckxlZnQoKTsKLSAgICBhdXRvIGJvcmRlclJpZ2h0ID0g
cmVuZGVyZXIuYm9yZGVyUmlnaHQoKTsKLSAgICBhdXRvIGJvcmRlclRvcCA9IHJlbmRlcmVyLmJv
cmRlclRvcCgpOwotICAgIGF1dG8gYm9yZGVyQm90dG9tID0gcmVuZGVyZXIuYm9yZGVyQm90dG9t
KCk7CisgICAgYXV0byBoZWlnaHRWYWx1ZSA9IFsmXShhdXRvJiBjb21wdXRlZFZhbHVlLCBib29s
IGNhbGxSZW5kZXJlckZvclBlcmNlbnRWYWx1ZSA9IGZhbHNlKSAtPiBzdGQ6Om9wdGlvbmFsPExh
eW91dFVuaXQ+IHsKKyAgICAgICAgaWYgKGNvbXB1dGVkVmFsdWUuaXNGaXhlZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIExheW91dFVuaXQgeyBib3hTaXppbmdJc0NvbnRlbnRCb3ggPyBjb21wdXRl
ZFZhbHVlLnZhbHVlKCkgOiBjb21wdXRlZFZhbHVlLnZhbHVlKCkgLSB2ZXJ0aWNhbE1hcmdpbkJv
cmRlckFuZFBhZGRpbmcgfTsKIAotICAgIHJldHVybiB7IHsgYm9yZGVyTGVmdCwgYm9yZGVyUmln
aHQgfSwgeyBib3JkZXJUb3AsIGJvcmRlckJvdHRvbSB9IH07Ci19CisgICAgICAgIGlmIChjb21w
dXRlZFZhbHVlLmlzUGVyY2VudCgpKSB7CisgICAgICAgICAgICBpZiAoY2FsbFJlbmRlcmVyRm9y
UGVyY2VudFZhbHVlKQorICAgICAgICAgICAgICAgIHJldHVybiBmbGV4Q29udGFpbmVyUmVuZGVy
ZXIuY29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbXB1dGVkVmFsdWUsIFJlbmRlckJv
eE1vZGVsT2JqZWN0OjpVcGRhdGVQZXJjZW50YWdlSGVpZ2h0RGVzY2VuZGFudHM6Ok5vKTsKIAot
c3RhdGljIGlubGluZSBMYXlvdXQ6OkJveEdlb21ldHJ5OjpFZGdlcyBmbGV4Qm94TG9naWNhbFBh
ZGRpbmcoY29uc3QgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBib29sIGlzTGVmdFRv
UmlnaHRJbmxpbmVEaXJlY3Rpb24sIEZsb3dEaXJlY3Rpb24gYmxvY2tGbG93RGlyZWN0aW9uKQot
ewotICAgIFVOVVNFRF9QQVJBTShpc0xlZnRUb1JpZ2h0SW5saW5lRGlyZWN0aW9uKTsKLSAgICBV
TlVTRURfUEFSQU0oYmxvY2tGbG93RGlyZWN0aW9uKTsKKyAgICAgICAgICAgIGlmIChmbGV4Q29u
dGFpbmVyUmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCktPnN0eWxlKCkubG9naWNhbEhlaWdodCgp
LmlzRml4ZWQoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB2YWx1ZUZvckxlbmd0
aChjb21wdXRlZFZhbHVlLCBmbGV4Q29udGFpbmVyUmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrKCkt
PnN0eWxlKCkuaGVpZ2h0KCkudmFsdWUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIExheW91
dFVuaXQgeyBib3hTaXppbmdJc0NvbnRlbnRCb3ggPyB2YWx1ZSA6IHZhbHVlIC0gdmVydGljYWxN
YXJnaW5Cb3JkZXJBbmRQYWRkaW5nIH07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICB9OwogCi0gICAgYXV0byBwYWRkaW5nID0gcmVuZGVyZXIucGFk
ZGluZygpOwotICAgIHJldHVybiB7IHsgcGFkZGluZy5sZWZ0KCksIHBhZGRpbmcucmlnaHQoKSB9
LCB7IHBhZGRpbmcudG9wKCksIHBhZGRpbmcuYm90dG9tKCkgfSB9OworICAgIGF1dG8gd2lkdGhH
ZW9tZXRyeSA9IFsmXSgpIC0+IExheW91dDo6Q29uc3RyYWludHNGb3JGbGV4Q29udGVudDo6QXhp
c0dlb21ldHJ5IHsKKyAgICAgICAgcmV0dXJuIHsgd2lkdGhWYWx1ZShmbGV4Qm94U3R5bGUubWlu
V2lkdGgoKSksIHdpZHRoVmFsdWUoZmxleEJveFN0eWxlLm1heFdpZHRoKCkpLCBhdmFpbGFibGVM
b2dpY2FsV2lkdGggPyBhdmFpbGFibGVMb2dpY2FsV2lkdGggOiB3aWR0aFZhbHVlKGZsZXhCb3hT
dHlsZS53aWR0aCgpKSwgZmxleENvbnRhaW5lclJlbmRlcmVyLmNvbnRlbnRCb3hMb2NhdGlvbigp
LngoKSB9OworICAgIH07CisKKyAgICBhdXRvIGhlaWdodEdlb21ldHJ5ID0gWyZdKCkgLT4gTGF5
b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50OjpBeGlzR2VvbWV0cnkgeworICAgICAgICBh
dXRvIGF2YWlsYWJsZVNpemUgPSBoZWlnaHRWYWx1ZShmbGV4Qm94U3R5bGUuaGVpZ2h0KCksIHRy
dWUpOworICAgICAgICBhdXRvIGxvZ2ljYWxNaW5IZWlnaHQgPSBoZWlnaHRWYWx1ZShmbGV4Qm94
U3R5bGUubWluSGVpZ2h0KCkpLnZhbHVlX29yKDBfbHUpOworICAgICAgICBhdXRvIGxvZ2ljYWxN
YXhIZWlnaHQgPSBoZWlnaHRWYWx1ZShmbGV4Qm94U3R5bGUubWF4SGVpZ2h0KCkpOworICAgICAg
ICBpZiAoIWF2YWlsYWJsZVNpemUgfHwgKGxvZ2ljYWxNYXhIZWlnaHQgJiYgKmxvZ2ljYWxNYXhI
ZWlnaHQgPCAqYXZhaWxhYmxlU2l6ZSkpCisgICAgICAgICAgICBhdmFpbGFibGVTaXplID0gbG9n
aWNhbE1heEhlaWdodDsKKworICAgICAgICByZXR1cm4gTGF5b3V0OjpDb25zdHJhaW50c0ZvckZs
ZXhDb250ZW50OjpBeGlzR2VvbWV0cnkgeyBsb2dpY2FsTWluSGVpZ2h0LCBsb2dpY2FsTWF4SGVp
Z2h0LCBhdmFpbGFibGVTaXplLCBmbGV4Q29udGFpbmVyUmVuZGVyZXIuY29udGVudEJveExvY2F0
aW9uKCkueSgpIH07CisgICAgfTsKKworICAgIHJldHVybiBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5n
VXRpbHM6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKGZsZXhDb250YWluZXIpID8g
TGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50KHdpZHRoR2VvbWV0cnkoKSwgaGVpZ2h0
R2VvbWV0cnkoKSwgZmFsc2UpIDogTGF5b3V0OjpDb25zdHJhaW50c0ZvckZsZXhDb250ZW50KGhl
aWdodEdlb21ldHJ5KCksIHdpZHRoR2VvbWV0cnkoKSwgZmFsc2UpOwogfQogCi12b2lkIEZsZXhM
YXlvdXQ6OnVwZGF0ZUZvcm1hdHRpbmdDb250ZXhHZW9tZXRyaWVzKExheW91dFVuaXQgYXZhaWxh
YmxlTG9naWNhbFdpZHRoKQordm9pZCBGbGV4TGF5b3V0Ojp1cGRhdGVGb3JtYXR0aW5nQ29udGV4
R2VvbWV0cmllcygpCiB7CiAgICAgYXV0byBib3hHZW9tZXRyeVVwZGF0ZXIgPSBCb3hHZW9tZXRy
eVVwZGF0ZXIgeyBsYXlvdXRTdGF0ZSgpLCBmbGV4Qm94KCkgfTsKLSAgICBib3hHZW9tZXRyeVVw
ZGF0ZXIuc2V0Rm9ybWF0dGluZ0NvbnRleHRSb290R2VvbWV0cnkoYXZhaWxhYmxlTG9naWNhbFdp
ZHRoKTsKKyAgICBib3hHZW9tZXRyeVVwZGF0ZXIuc2V0Rm9ybWF0dGluZ0NvbnRleHRSb290R2Vv
bWV0cnkoZmxleEJveFJlbmRlcmVyKCkuY29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2lj
YWxXaWR0aCgpKTsKICAgICBib3hHZW9tZXRyeVVwZGF0ZXIuc2V0Rm9ybWF0dGluZ0NvbnRleHRD
b250ZW50R2VvbWV0cnkobGF5b3V0U3RhdGUoKS5nZW9tZXRyeUZvckJveChmbGV4Qm94KCkpLmNv
bnRlbnRCb3hXaWR0aCgpLCB7IH0pOwogfQogCkBAIC0xMDAsNTYgKzEzMSw3IEBAIHN0ZDo6cGFp
cjxMYXlvdXRVbml0LCBMYXlvdXRVbml0PiBGbGV4TGF5b3V0Ojpjb21wdXRlSW50cmluc2ljV2lk
dGhDb25zdHJhaW50cygpCiAKIHZvaWQgRmxleExheW91dDo6bGF5b3V0KCkKIHsKLSAgICBhdXRv
JiByb290R2VvbWV0cnkgPSBsYXlvdXRTdGF0ZSgpLmdlb21ldHJ5Rm9yQm94KGZsZXhCb3goKSk7
Ci0gICAgYXV0byYgZmxleEJveFN0eWxlID0gZmxleEJveCgpLnN0eWxlKCk7Ci0KLSAgICBhdXRv
IGxvZ2ljYWxIb3Jpem9udGFsR2VvbWV0cnkgPSBbJl0gewotICAgICAgICBhdXRvIHdpZHRoVmFs
dWUgPSBbJl0oYXV0byYgY29tcHV0ZWRWYWx1ZSkgLT4gc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0
PiB7Ci0gICAgICAgICAgICBhdXRvIGJveFNpemluZ0lzQ29udGVudEJveCA9IGZsZXhCb3hTdHls
ZS5ib3hTaXppbmcoKSA9PSBCb3hTaXppbmc6OkNvbnRlbnRCb3g7Ci0gICAgICAgICAgICBpZiAo
Y29tcHV0ZWRWYWx1ZS5pc0ZpeGVkKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIExheW91dFVu
aXQgeyBib3hTaXppbmdJc0NvbnRlbnRCb3ggPyBjb21wdXRlZFZhbHVlLnZhbHVlKCkgOiBjb21w
dXRlZFZhbHVlLnZhbHVlKCkgLSByb290R2VvbWV0cnkuaG9yaXpvbnRhbE1hcmdpbkJvcmRlckFu
ZFBhZGRpbmcoKSB9OwotCi0gICAgICAgICAgICBpZiAoY29tcHV0ZWRWYWx1ZS5pc1BlcmNlbnQo
KSkgewotICAgICAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB2YWx1ZUZvckxlbmd0aChjb21wdXRl
ZFZhbHVlLCBmbGV4Qm94UmVuZGVyZXIoKS5jb250YWluaW5nQmxvY2soKS0+bG9naWNhbFdpZHRo
KCkpOwotICAgICAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXNDb250
ZW50Qm94ID8gdmFsdWUgOiB2YWx1ZSAtIHJvb3RHZW9tZXRyeS5ob3Jpem9udGFsTWFyZ2luQm9y
ZGVyQW5kUGFkZGluZygpIH07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIH07Ci0gICAgICAgIHJldHVybiBMYXlvdXQ6OkNvbnN0cmFpbnRzRm9yRmxl
eENvbnRlbnQ6OkF4aXNHZW9tZXRyeSB7IHdpZHRoVmFsdWUoZmxleEJveFN0eWxlLmxvZ2ljYWxN
aW5XaWR0aCgpKSwgd2lkdGhWYWx1ZShmbGV4Qm94U3R5bGUubG9naWNhbE1heFdpZHRoKCkpLCBy
b290R2VvbWV0cnkuY29udGVudEJveFdpZHRoKCksIHJvb3RHZW9tZXRyeS5jb250ZW50Qm94TGVm
dCgpIH07Ci0gICAgfTsKLQotICAgIGF1dG8gbG9naWNhbFZlcnRpY2FsR2VvbWV0cnkgPSBbJl0o
KSB7Ci0gICAgICAgIGF1dG8gaGVpZ2h0VmFsdWUgPSBbJl0oYXV0byYgY29tcHV0ZWRWYWx1ZSwg
Ym9vbCBjYWxsUmVuZGVyZXJGb3JQZXJjZW50VmFsdWUgPSBmYWxzZSkgLT4gc3RkOjpvcHRpb25h
bDxMYXlvdXRVbml0PiB7Ci0gICAgICAgICAgICBhdXRvIGJveFNpemluZ0lzQ29udGVudEJveCA9
IGZsZXhCb3hTdHlsZS5ib3hTaXppbmcoKSA9PSBCb3hTaXppbmc6OkNvbnRlbnRCb3g7Ci0gICAg
ICAgICAgICBpZiAoY29tcHV0ZWRWYWx1ZS5pc0ZpeGVkKCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIExheW91dFVuaXQgeyBib3hTaXppbmdJc0NvbnRlbnRCb3ggPyBjb21wdXRlZFZhbHVlLnZh
bHVlKCkgOiBjb21wdXRlZFZhbHVlLnZhbHVlKCkgLSByb290R2VvbWV0cnkudmVydGljYWxNYXJn
aW5Cb3JkZXJBbmRQYWRkaW5nKCkgfTsKLQotICAgICAgICAgICAgaWYgKGNvbXB1dGVkVmFsdWUu
aXNQZXJjZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2FsbFJlbmRlcmVyRm9yUGVyY2Vu
dFZhbHVlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmxleEJveFJlbmRlcmVyKCkuY29t
cHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbXB1dGVkVmFsdWUsIFJlbmRlckJveE1vZGVs
T2JqZWN0OjpVcGRhdGVQZXJjZW50YWdlSGVpZ2h0RGVzY2VuZGFudHM6Ok5vKTsKLQotICAgICAg
ICAgICAgICAgIGlmIChmbGV4Qm94UmVuZGVyZXIoKS5jb250YWluaW5nQmxvY2soKS0+c3R5bGUo
KS5sb2dpY2FsSGVpZ2h0KCkuaXNGaXhlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8g
dmFsdWUgPSB2YWx1ZUZvckxlbmd0aChjb21wdXRlZFZhbHVlLCBmbGV4Qm94UmVuZGVyZXIoKS5j
b250YWluaW5nQmxvY2soKS0+c3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkudmFsdWUoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0IHsgYm94U2l6aW5nSXNDb250ZW50Qm94
ID8gdmFsdWUgOiB2YWx1ZSAtIHJvb3RHZW9tZXRyeS52ZXJ0aWNhbE1hcmdpbkJvcmRlckFuZFBh
ZGRpbmcoKSB9OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICAgICAgfTsKLQotICAgICAgICBhdXRvIGF2YWlsYWJsZVNpemUg
PSBoZWlnaHRWYWx1ZShmbGV4Qm94U3R5bGUubG9naWNhbEhlaWdodCgpLCB0cnVlKTsKLSAgICAg
ICAgYXV0byBsb2dpY2FsTWluSGVpZ2h0ID0gaGVpZ2h0VmFsdWUoZmxleEJveFN0eWxlLmxvZ2lj
YWxNaW5IZWlnaHQoKSkudmFsdWVfb3IoMF9sdSk7Ci0gICAgICAgIGF1dG8gbG9naWNhbE1heEhl
aWdodCA9IGhlaWdodFZhbHVlKGZsZXhCb3hTdHlsZS5sb2dpY2FsTWF4SGVpZ2h0KCkpOwotICAg
ICAgICBpZiAoIWF2YWlsYWJsZVNpemUgfHwgKGxvZ2ljYWxNYXhIZWlnaHQgJiYgKmxvZ2ljYWxN
YXhIZWlnaHQgPCAqYXZhaWxhYmxlU2l6ZSkpCi0gICAgICAgICAgICBhdmFpbGFibGVTaXplID0g
bG9naWNhbE1heEhlaWdodDsKLQotICAgICAgICByZXR1cm4gTGF5b3V0OjpDb25zdHJhaW50c0Zv
ckZsZXhDb250ZW50OjpBeGlzR2VvbWV0cnkgeyBsb2dpY2FsTWluSGVpZ2h0LCBsb2dpY2FsTWF4
SGVpZ2h0LCBhdmFpbGFibGVTaXplLCByb290R2VvbWV0cnkuY29udGVudEJveFRvcCgpIH07Ci0g
ICAgfTsKLQotICAgIGF1dG8gY29uc3RyYWludHMgPSBMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nVXRp
bHM6OmlzTWFpbkF4aXNQYXJhbGxlbFdpdGhJbmxpbmVBeGlzKGZsZXhCb3goKSkgPyBMYXlvdXQ6
OkNvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQobG9naWNhbEhvcml6b250YWxHZW9tZXRyeSgpLCBs
b2dpY2FsVmVydGljYWxHZW9tZXRyeSgpLCBmYWxzZSkgOiBMYXlvdXQ6OkNvbnN0cmFpbnRzRm9y
RmxleENvbnRlbnQobG9naWNhbFZlcnRpY2FsR2VvbWV0cnkoKSwgbG9naWNhbEhvcml6b250YWxH
ZW9tZXRyeSgpLCBmYWxzZSk7Ci0gICAgYXV0byBmbGV4Rm9ybWF0dGluZ0NvbnRleHQgPSBMYXlv
dXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dCB7IGZsZXhCb3goKSwgbGF5b3V0U3RhdGUoKSB9Owot
ICAgIGZsZXhGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXQoY29uc3RyYWludHMpOworICAgIExheW91
dDo6RmxleEZvcm1hdHRpbmdDb250ZXh0IHsgZmxleEJveCgpLCBsYXlvdXRTdGF0ZSgpIH0ubGF5
b3V0KGNvbnN0cmFpbnRzRm9yRmxleENvbnRlbnQoZmxleEJveCgpKSk7CiAKICAgICB1cGRhdGVS
ZW5kZXJlcnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vZmxleC9MYXlvdXRJbnRlZ3JhdGlvbkZsZXhMYXlvdXQuaAppbmRl
eCA2ZDhhMTQ1MTU2MWYuLjJkMTBkN2E4MTlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL2ZsZXgvTGF5b3V0SW50ZWdyYXRp
b25GbGV4TGF5b3V0LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIEZsZXhMYXlvdXQo
UmVuZGVyRmxleGlibGVCb3gmKTsKICAgICB+RmxleExheW91dCgpOwogCi0gICAgdm9pZCB1cGRh
dGVGb3JtYXR0aW5nQ29udGV4R2VvbWV0cmllcyhMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxX
aWR0aCk7CisgICAgdm9pZCB1cGRhdGVGb3JtYXR0aW5nQ29udGV4R2VvbWV0cmllcygpOwogICAg
IHZvaWQgdXBkYXRlU3R5bGUoY29uc3QgUmVuZGVyQmxvY2smLCBjb25zdCBSZW5kZXJTdHlsZSYg
b2xkU3R5bGUpOwogCiAgICAgc3RkOjpwYWlyPExheW91dFVuaXQsIExheW91dFVuaXQ+IGNvbXB1
dGVJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCA4ZWNhZWFjZmUzNTUuLjM2YzQ2ZjMxYzA3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
CkBAIC0yNjc5LDcgKzI2NzksNyBAQCBib29sIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRVc2lu
Z0ZsZXhGb3JtYXR0aW5nQ29udGV4dCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1
dG8gZmxleExheW91dCA9IExheW91dEludGVncmF0aW9uOjpGbGV4TGF5b3V0IHsgKnRoaXMgfTsK
LSAgICBmbGV4TGF5b3V0LnVwZGF0ZUZvcm1hdHRpbmdDb250ZXhHZW9tZXRyaWVzKGNvbnRhaW5p
bmdCbG9jaygpID8gY29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpIDog
TGF5b3V0VW5pdCgpKTsKKyAgICBmbGV4TGF5b3V0LnVwZGF0ZUZvcm1hdHRpbmdDb250ZXhHZW9t
ZXRyaWVzKCk7CiAKICAgICBmbGV4TGF5b3V0LmxheW91dCgpOwogICAgIHNldExvZ2ljYWxIZWln
aHQoc3RkOjptYXgobG9naWNhbEhlaWdodCgpLCBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdo
dCgpICsgZmxleExheW91dC5jb250ZW50Qm94TG9naWNhbEhlaWdodCgpKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>