<?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>228940</bug_id>
          
          <creation_ts>2021-08-09 19:33:03 -0700</creation_ts>
          <short_desc>[IFC][Integration] Add painting support for vertical text content</short_desc>
          <delta_ts>2021-08-21 11:19:51 -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>1783077</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-08-09 19:33:03 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783081</commentid>
    <comment_count>1</comment_count>
      <attachid>435235</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-09 19:46:58 -0700</bug_when>
    <thetext>Created attachment 435235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784722</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-16 19:34:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/82009757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786085</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-20 19:53:09 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 435235 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786134</commentid>
    <comment_count>4</comment_count>
      <attachid>436072</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-08-21 06:50:36 -0700</bug_when>
    <thetext>Created attachment 436072
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786152</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-21 11:19:49 -0700</bug_when>
    <thetext>Committed r281377 (240792@main): &lt;https://commits.webkit.org/240792@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436072.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435235</attachid>
            <date>2021-08-09 19:46:58 -0700</date>
            <delta_ts>2021-08-21 06:50:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228940-20210809194657.patch</filename>
            <type>text/plain</type>
            <size>10345</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDlhNWZlMGY4MGE4MmYw
MzE1NTQzNTMyNTJkY2M0NmVjNmJjNTMxNy4uYzNjOTU0MmJhOGI0MDcwNTliYWU1MzRjYTZkNzhi
YTYyZmMzN2VhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA4LTA5ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
QWRkIHBhaW50aW5nIHN1cHBvcnQgZm9yIHZlcnRpY2FsIHRleHQgY29udGVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHJhbnNsYXRlIHRoZSBsb2dp
Y2FsIGxheW91dCBjb29yZGluYXRlcyB0byBwaHlzaWNhbCBwYWludCBjb29yZGluYXRlcyBieSB0
YWtpbmcgdGhlIHdyaXRpbmcgbW9kZSBpbnRvIGFjY291bnQuCisgICAgICAgIChlLmcuIHdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7CisgICAgICAgICAgcnVuIGxvZ2ljYWwgcmVjdDogWzAsIDBd
WzIweDE4XQorICAgICAgICAgIGluIGEgZmxpcHBlZCBibG9jayBib3g6IFsxMCwgMTBdWzEwMHg1
MF0KKyAgICAgICAgICB3aXRoIHRoZSBwYWludCBvZmZzZXQ6IFs4LCA4XQorCisgICAgICAgICAg
dHJhbnNsYXRlcyB0bzogWzkwLCA4XVsyMHgxOF0KKyAgICAgICAgKQorCisgICAgICAgICogbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OnBhaW50VGV4dFJ1blVz
aW5nUGh5c2ljYWxDb29yZGluYXRlcyk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5oOgorCiAyMDIxLTA3LTI4ICBGcsOpZMOpcmljIFdh
bmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENyYXNoIGluIEFwcGx5U3R5bGVDb21t
YW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuY3BwCmluZGV4IDQ4MTIwYjdiNzliOWY4MTc1MzM1ZTdmMDE4YWViYWFiNjFiZDBjYzgu
LjRmOTIxNDljZTY3ZDAzNzhjMjFiMGY5ZGEzMWNjMjhkNjY5M2MxNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC00NDksNjkgKzQ0OSwxNiBAQCB2b2lkIExpbmVMYXlv
dXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRP
ZmZzZXQpCiAgICAgaWYgKHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpGb3JlZ3JvdW5k
ICYmIHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpFdmVudFJlZ2lvbikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXV0byYgaW5saW5lQ29udGVudCA9ICptX2lubGluZUNvbnRlbnQ7Ci0g
ICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBmbG93KCkuZG9jdW1lbnQoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpOwotCiAgICAgYXV0byBwYWludFJlY3QgPSBwYWludEluZm8ucmVjdDsKICAgICBw
YWludFJlY3QubW92ZUJ5KC1wYWludE9mZnNldCk7CiAKLSAgICBmb3IgKGF1dG8mIHJ1biA6IGlu
bGluZUNvbnRlbnQucnVuc0ZvclJlY3QocGFpbnRSZWN0KSkgewotICAgICAgICBpZiAoIXJ1bi50
ZXh0Q29udGVudCgpKSB7Ci0gICAgICAgICAgICBhdXRvJiByZW5kZXJlciA9IG1fYm94VHJlZS5y
ZW5kZXJlckZvckxheW91dEJveChydW4ubGF5b3V0Qm94KCkpOwotICAgICAgICAgICAgaWYgKHJl
bmRlcmVyLmlzUmVwbGFjZWQoKSAmJiBpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSkgewotICAgICAg
ICAgICAgICAgIGF1dG8mIHJlbmRlckJveCA9IGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIp
OwotICAgICAgICAgICAgICAgIGlmIChyZW5kZXJCb3guaGFzU2VsZlBhaW50aW5nTGF5ZXIoKSkK
LSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYWlu
dEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHJlbmRlckJveCkpCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgIGZvciAoYXV0byYgcnVuIDogbV9pbmxpbmVDb250ZW50LT5ydW5z
Rm9yUmVjdChwYWludFJlY3QpKSB7CisgICAgICAgIGlmIChydW4udGV4dENvbnRlbnQoKSkKKyAg
ICAgICAgICAgIHBhaW50VGV4dFJ1blVzaW5nUGh5c2ljYWxDb29yZGluYXRlcyhwYWludEluZm8s
IHBhaW50T2Zmc2V0LCBtX2lubGluZUNvbnRlbnQtPmxpbmVGb3JSdW4ocnVuKSwgcnVuKTsKKyAg
ICAgICAgZWxzZSBpZiAoYXV0byYgcmVuZGVyZXIgPSBtX2JveFRyZWUucmVuZGVyZXJGb3JMYXlv
dXRCb3gocnVuLmxheW91dEJveCgpKTsgaXM8UmVuZGVyQm94PihyZW5kZXJlcikgJiYgcmVuZGVy
ZXIuaXNSZXBsYWNlZCgpKSB7CisgICAgICAgICAgICBhdXRvJiByZW5kZXJCb3ggPSBkb3duY2Fz
dDxSZW5kZXJCb3g+KHJlbmRlcmVyKTsKKyAgICAgICAgICAgIGlmICghcmVuZGVyQm94Lmhhc1Nl
bGZQYWludGluZ0xheWVyKCkgJiYgcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5k
ZXJCb3gpKQogICAgICAgICAgICAgICAgIHJlbmRlckJveC5wYWludEFzSW5saW5lQmxvY2socGFp
bnRJbmZvLCBwYWludE9mZnNldCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8mIHRleHRDb250ZW50ID0gKnJ1bi50ZXh0Q29u
dGVudCgpOwotICAgICAgICBpZiAoIXRleHRDb250ZW50Lmxlbmd0aCgpKQotICAgICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgYXV0byYgc3R5bGUgPSBydW4uc3R5bGUoKTsKLSAgICAgICAg
aWYgKHN0eWxlLnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlKQotICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgYXV0byByZWN0ID0gRmxvYXRSZWN0IHsgcnVuLnJlY3Qo
KSB9OwotICAgICAgICBhdXRvIHZpc3VhbE92ZXJmbG93UmVjdCA9IEZsb2F0UmVjdCB7IHJ1bi5p
bmtPdmVyZmxvdygpIH07Ci0gICAgICAgIGlmIChwYWludFJlY3QueSgpID4gdmlzdWFsT3ZlcmZs
b3dSZWN0Lm1heFkoKSB8fCBwYWludFJlY3QubWF4WSgpIDwgdmlzdWFsT3ZlcmZsb3dSZWN0Lnko
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmIChwYWludEluZm8uZXZlbnRS
ZWdpb25Db250ZXh0KSB7Ci0gICAgICAgICAgICBpZiAoc3R5bGUucG9pbnRlckV2ZW50cygpICE9
IFBvaW50ZXJFdmVudHM6Ok5vbmUpIHsKLSAgICAgICAgICAgICAgICB2aXN1YWxPdmVyZmxvd1Jl
Y3QubW92ZUJ5KHBhaW50T2Zmc2V0KTsKLSAgICAgICAgICAgICAgICBwYWludEluZm8uZXZlbnRS
ZWdpb25Db250ZXh0LT51bml0ZShlbmNsb3NpbmdJbnRSZWN0KHZpc3VhbE92ZXJmbG93UmVjdCks
IHN0eWxlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
Ci0KLSAgICAgICAgYXV0byYgbGluZSA9IGlubGluZUNvbnRlbnQubGluZUZvclJ1bihydW4pOwot
ICAgICAgICBhdXRvIGV4cGFuc2lvbiA9IHJ1bi5leHBhbnNpb24oKTsKLSAgICAgICAgLy8gVGV4
dFJ1biBleHBlY3RzIHRoZSB4UG9zIHRvIGJlIGFkanVzdGVkIHdpdGggdGhlIGFsaWdtZW50IG9m
ZnNldCAoZS5nLiB3aGVuIHRoZSBsaW5lIGlzIGNlbnRlciBhbGlnbmVkCi0gICAgICAgIC8vIGFu
ZCB0aGUgcnVuIHN0YXJ0cyBhdCAxMDBweCwgZHVlIHRvIHRoZSBob3Jpem9udGFsIGFsaWdtZW50
LCB0aGUgeHBvcyBpcyBzdXBwb3NlZCB0byBiZSBhdCAwcHgpLgotICAgICAgICBhdXRvJiBmb250
Q2FzY2FkZSA9IHN0eWxlLmZvbnRDYXNjYWRlKCk7Ci0gICAgICAgIGF1dG8geFBvcyA9IHJlY3Qu
eCgpIC0gKGxpbmUubGluZUJveExlZnQoKSArIGxpbmUuY29udGVudExlZnQoKSk7Ci0gICAgICAg
IFdlYkNvcmU6OlRleHRSdW4gdGV4dFJ1biB7IHRleHRDb250ZW50LnJlbmRlcmVkQ29udGVudCgp
LCB4UG9zLCBleHBhbnNpb24uaG9yaXpvbnRhbEV4cGFuc2lvbiwgZXhwYW5zaW9uLmJlaGF2aW9y
IH07Ci0gICAgICAgIHRleHRSdW4uc2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNl
KCksIHN0eWxlLnRhYlNpemUoKSk7Ci0KLSAgICAgICAgVGV4dFBhaW50ZXIgdGV4dFBhaW50ZXIo
cGFpbnRJbmZvLmNvbnRleHQoKSk7Ci0gICAgICAgIHRleHRQYWludGVyLnNldEZvbnQoZm9udENh
c2NhZGUpOwotICAgICAgICB0ZXh0UGFpbnRlci5zZXRTdHlsZShjb21wdXRlVGV4dFBhaW50U3R5
bGUoZmxvdygpLmZyYW1lKCksIHN0eWxlLCBwYWludEluZm8pKTsKLSAgICAgICAgdGV4dFBhaW50
ZXIuc2V0R2x5cGhEaXNwbGF5TGlzdElmTmVlZGVkKHJ1biwgcGFpbnRJbmZvLCBmb250Q2FzY2Fk
ZSwgcGFpbnRJbmZvLmNvbnRleHQoKSwgdGV4dFJ1bik7Ci0KLSAgICAgICAgYXV0byB0ZXh0T3Jp
Z2luID0gRmxvYXRQb2ludCB7IHBhaW50T2Zmc2V0LngoKSArIHJlY3QueCgpLCByb3VuZFRvRGV2
aWNlUGl4ZWwocGFpbnRPZmZzZXQueSgpICsgcmVjdC55KCkgKyBmb250Q2FzY2FkZS5mb250TWV0
cmljcygpLmFzY2VudCgpLCBkZXZpY2VTY2FsZUZhY3RvcikgfTsKLSAgICAgICAgdGV4dFBhaW50
ZXIucGFpbnQodGV4dFJ1biwgcmVjdCwgdGV4dE9yaWdpbik7Ci0KLSAgICAgICAgaWYgKCFzdHls
ZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0
byYgdGV4dFJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4obV9ib3hUcmVlLnJlbmRlcmVy
Rm9yTGF5b3V0Qm94KHJ1bi5sYXlvdXRCb3goKSkpOwotICAgICAgICAgICAgYXV0byBwYWludGVy
ID0gVGV4dERlY29yYXRpb25QYWludGVyIHsgcGFpbnRJbmZvLmNvbnRleHQoKSwgc3R5bGUudGV4
dERlY29yYXRpb25zSW5FZmZlY3QoKSwgdGV4dFJlbmRlcmVyLCBmYWxzZSwgZm9udENhc2NhZGUg
fTsKLSAgICAgICAgICAgIHBhaW50ZXIuc2V0V2lkdGgocmVjdC53aWR0aCgpKTsKLSAgICAgICAg
ICAgIHBhaW50ZXIucGFpbnRUZXh0RGVjb3JhdGlvbih0ZXh0UnVuLCB0ZXh0T3JpZ2luLCByZWN0
LmxvY2F0aW9uKCkgKyBwYWludE9mZnNldCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC01OTYs
NiArNTQzLDg0IEBAIHZvaWQgTGluZUxheW91dDo6cmVsZWFzZUlubGluZUl0ZW1DYWNoZSgpCiAg
ICAgbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUuaW5saW5lSXRlbXMoKS5jbGVhcigpOwogfQogCit2
b2lkIExpbmVMYXlvdXQ6OnBhaW50VGV4dFJ1blVzaW5nUGh5c2ljYWxDb29yZGluYXRlcyhQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBM
aW5lJiBsaW5lLCBjb25zdCBSdW4mIHJ1bikKK3sKKyAgICBhdXRvJiBzdHlsZSA9IHJ1bi5zdHls
ZSgpOworICAgIGlmIChydW4uc3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0eTo6Vmlz
aWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgdGV4dENvbnRlbnQgPSAqcnVuLnRl
eHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Q29udGVudC5sZW5ndGgoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byYgZm9ybWF0dGluZ0NvbnRleHRSb290ID0gZmxvdygpOworICAgIGF1
dG8gYmxvY2tJc0hvcml6b250YWxXcml0aW5nID0gZm9ybWF0dGluZ0NvbnRleHRSb290LnN0eWxl
KCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKKyAgICBhdXRvIHBoeXNpY2FsUGFpbnRPZmZz
ZXQgPSBwYWludE9mZnNldDsKKyAgICBpZiAoIWJsb2NrSXNIb3Jpem9udGFsV3JpdGluZykgewor
ICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aHkgdGhpcyB0cmFuc2xhdGUgaXMgcmVxdWly
ZWQuCisgICAgICAgIHBoeXNpY2FsUGFpbnRPZmZzZXQubW92ZSh7IDAsIC1ydW4ucmVjdCgpLmhl
aWdodCgpIH0pOworICAgIH0KKworICAgIGF1dG8gcGh5c2ljYWxSZWN0ID0gWyZdKGNvbnN0IGF1
dG8mIHJlY3QpIHsKKyAgICAgICAgaWYgKCFzdHlsZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9k
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHJlY3Q7CisgICAgICAgIGlmICghYmxvY2tJc0hvcml6
b250YWxXcml0aW5nKQorICAgICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCB7IGZvcm1hdHRpbmdD
b250ZXh0Um9vdC53aWR0aCgpIC0gcmVjdC5tYXhZKCksIHJlY3QueCgpICwgcmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpIH07CisgICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7
CisgICAgICAgIHJldHVybiByZWN0OworICAgIH07CisKKyAgICBhdXRvIHZpc3VhbE92ZXJmbG93
UmVjdCA9IHBoeXNpY2FsUmVjdChydW4uaW5rT3ZlcmZsb3coKSk7CisKKyAgICBhdXRvIGRhbWFn
ZWRSZWN0ID0gcGFpbnRJbmZvLnJlY3Q7CisgICAgZGFtYWdlZFJlY3QubW92ZUJ5KC1waHlzaWNh
bFBhaW50T2Zmc2V0KTsKKyAgICBpZiAoZGFtYWdlZFJlY3QueSgpID4gdmlzdWFsT3ZlcmZsb3dS
ZWN0Lm1heFkoKSB8fCBkYW1hZ2VkUmVjdC5tYXhZKCkgPCB2aXN1YWxPdmVyZmxvd1JlY3QueSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocGFpbnRJbmZvLmV2ZW50UmVnaW9uQ29udGV4
dCkgeworICAgICAgICBpZiAoc3R5bGUucG9pbnRlckV2ZW50cygpICE9IFBvaW50ZXJFdmVudHM6
Ok5vbmUpIHsKKyAgICAgICAgICAgIHZpc3VhbE92ZXJmbG93UmVjdC5tb3ZlQnkocGh5c2ljYWxQ
YWludE9mZnNldCk7CisgICAgICAgICAgICBwYWludEluZm8uZXZlbnRSZWdpb25Db250ZXh0LT51
bml0ZShlbmNsb3NpbmdJbnRSZWN0KHZpc3VhbE92ZXJmbG93UmVjdCksIHN0eWxlKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgcGFpbnRDb250ZXh0ID0g
cGFpbnRJbmZvLmNvbnRleHQoKTsKKyAgICBhdXRvIGV4cGFuc2lvbiA9IHJ1bi5leHBhbnNpb24o
KTsKKyAgICAvLyBUZXh0UnVuIGV4cGVjdHMgdGhlIHhQb3MgdG8gYmUgYWRqdXN0ZWQgd2l0aCB0
aGUgYWxpZ21lbnQgb2Zmc2V0IChlLmcuIHdoZW4gdGhlIGxpbmUgaXMgY2VudGVyIGFsaWduZWQK
KyAgICAvLyBhbmQgdGhlIHJ1biBzdGFydHMgYXQgMTAwcHgsIGR1ZSB0byB0aGUgaG9yaXpvbnRh
bCBhbGlnbWVudCwgdGhlIHhwb3MgaXMgc3VwcG9zZWQgdG8gYmUgYXQgMHB4KS4KKyAgICBhdXRv
JiBmb250Q2FzY2FkZSA9IHN0eWxlLmZvbnRDYXNjYWRlKCk7CisgICAgYXV0byB4UG9zID0gcnVu
LnJlY3QoKS54KCkgLSAobGluZS5saW5lQm94TGVmdCgpICsgbGluZS5jb250ZW50TGVmdCgpKTsK
KyAgICBhdXRvIHRleHRSdW4gPSBXZWJDb3JlOjpUZXh0UnVuIHsgdGV4dENvbnRlbnQucmVuZGVy
ZWRDb250ZW50KCksIHhQb3MsIGV4cGFuc2lvbi5ob3Jpem9udGFsRXhwYW5zaW9uLCBleHBhbnNp
b24uYmVoYXZpb3IgfTsKKyAgICB0ZXh0UnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hp
dGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOworCisgICAgYXV0byB0ZXh0UGFpbnRlciA9IFRl
eHRQYWludGVyIHsgcGFpbnRDb250ZXh0IH07CisgICAgdGV4dFBhaW50ZXIuc2V0Rm9udChmb250
Q2FzY2FkZSk7CisgICAgdGV4dFBhaW50ZXIuc2V0U3R5bGUoY29tcHV0ZVRleHRQYWludFN0eWxl
KGZvcm1hdHRpbmdDb250ZXh0Um9vdC5mcmFtZSgpLCBzdHlsZSwgcGFpbnRJbmZvKSk7CisgICAg
dGV4dFBhaW50ZXIuc2V0R2x5cGhEaXNwbGF5TGlzdElmTmVlZGVkKHJ1biwgcGFpbnRJbmZvLCBm
b250Q2FzY2FkZSwgcGFpbnRDb250ZXh0LCB0ZXh0UnVuKTsKKworICAgIC8vIFBhaW50aW5nIHVz
ZXMgb25seSBwaHlzaWNhbCBjb29yZGluYXRlcy4KKyAgICB7CisgICAgICAgIGF1dG8gcnVuUmVj
dCA9IHBoeXNpY2FsUmVjdChydW4ucmVjdCgpKTsKKyAgICAgICAgYXV0byBib3hSZWN0ID0gRmxv
YXRSZWN0IHsgRmxvYXRQb2ludCB7IHBoeXNpY2FsUGFpbnRPZmZzZXQueCgpICsgcnVuUmVjdC54
KCksIHBoeXNpY2FsUGFpbnRPZmZzZXQueSgpICsgcnVuUmVjdC55KCkgfSwgcnVuUmVjdC5zaXpl
KCkgfTsKKyAgICAgICAgYXV0byB0ZXh0T3JpZ2luID0gRmxvYXRQb2ludCB7IGJveFJlY3QueCgp
LCByb3VuZFRvRGV2aWNlUGl4ZWwoYm94UmVjdC55KCkgKyBmb250Q2FzY2FkZS5mb250TWV0cmlj
cygpLmFzY2VudCgpLCBmb3JtYXR0aW5nQ29udGV4dFJvb3QuZG9jdW1lbnQoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKSB9OworCisgICAgICAgIGF1dG8gc2hvdWxkUm90YXRlID0gIWJsb2NrSXNIb3Jp
em9udGFsV3JpdGluZzsKKyAgICAgICAgaWYgKHNob3VsZFJvdGF0ZSkKKyAgICAgICAgICAgIHBh
aW50Q29udGV4dC5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ2xvY2t3aXNlKSk7CisgICAg
ICAgIHRleHRQYWludGVyLnBhaW50KHRleHRSdW4sIHJ1blJlY3QsIHRleHRPcmlnaW4pOworCisg
ICAgICAgIGlmICghc3R5bGUudGV4dERlY29yYXRpb25zSW5FZmZlY3QoKS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgICAgIGF1dG8mIHRleHRSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlclRleHQ+KG1f
Ym94VHJlZS5yZW5kZXJlckZvckxheW91dEJveChydW4ubGF5b3V0Qm94KCkpKTsKKyAgICAgICAg
ICAgIGF1dG8gcGFpbnRlciA9IFRleHREZWNvcmF0aW9uUGFpbnRlciB7IHBhaW50Q29udGV4dCwg
c3R5bGUudGV4dERlY29yYXRpb25zSW5FZmZlY3QoKSwgdGV4dFJlbmRlcmVyLCBmYWxzZSwgZm9u
dENhc2NhZGUgfTsKKyAgICAgICAgICAgIHBhaW50ZXIuc2V0V2lkdGgocnVuUmVjdC53aWR0aCgp
KTsKKyAgICAgICAgICAgIHBhaW50ZXIucGFpbnRUZXh0RGVjb3JhdGlvbih0ZXh0UnVuLCB0ZXh0
T3JpZ2luLCBydW5SZWN0LmxvY2F0aW9uKCkgKyBwaHlzaWNhbFBhaW50T2Zmc2V0KTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoc2hvdWxkUm90YXRlKQorICAgICAgICAgICAgcGFpbnRJbmZvLmNv
bnRleHQoKS5jb25jYXRDVE0ocm90YXRpb24oYm94UmVjdCwgQ291bnRlcmNsb2Nrd2lzZSkpOwor
ICAgIH0KK30KKwogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKIHZvaWQgTGluZUxheW91dDo6
b3V0cHV0TGluZVRyZWUoV1RGOjpUZXh0U3RyZWFtJiBzdHJlYW0sIHNpemVfdCBkZXB0aCkgY29u
c3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaAppbmRleCAwOTFhNjAxNGI3MTliNTNl
YzQ3ZjA1MmFhM2FiYTg2ZjhmYTA2ZmM2Li4zNDYwOTQ4ODE4ZTQ1ZGE4NjBiMGY3ZGIzN2VjYTRk
MWExY2QwYWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5oCkBAIC0xMTUsNiArMTE1
LDggQEAgcHJpdmF0ZToKICAgICBJbmxpbmVDb250ZW50JiBlbnN1cmVJbmxpbmVDb250ZW50KCk7
CiAgICAgdm9pZCB1cGRhdGVMYXlvdXRCb3hEaW1lbnNpb25zKGNvbnN0IFJlbmRlckJveCYpOwog
CisgICAgdm9pZCBwYWludFRleHRSdW5Vc2luZ1BoeXNpY2FsQ29vcmRpbmF0ZXMoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMaW5lJiwgY29uc3QgUnVu
Jik7CisKICAgICBjb25zdCBMYXlvdXQ6OkNvbnRhaW5lckJveCYgcm9vdExheW91dEJveCgpIGNv
bnN0OwogICAgIExheW91dDo6Q29udGFpbmVyQm94JiByb290TGF5b3V0Qm94KCk7CiAgICAgdm9p
ZCByZWxlYXNlSW5saW5lSXRlbUNhY2hlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436072</attachid>
            <date>2021-08-21 06:50:36 -0700</date>
            <delta_ts>2021-08-21 11:19:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228940-20210821065036.patch</filename>
            <type>text/plain</type>
            <size>10604</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2I1MGNiMzk1MjM4Y2Jh
ZjZjOTllOTllNTY5YjM4Nzk0NjI2ZGIwMy4uZjE1YmNiYWI2NzFjZTJhMDc1ZmIzZjEwNzA3N2Ji
MmY3ZTA3NGM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA4LTIxICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
QWRkIHBhaW50aW5nIHN1cHBvcnQgZm9yIHZlcnRpY2FsIHRleHQgY29udGVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVHJhbnNsYXRlIHRoZSBsb2dp
Y2FsIGxheW91dCBjb29yZGluYXRlcyB0byBwaHlzaWNhbCBwYWludCBjb29yZGluYXRlcyBieSB0
YWtpbmcgdGhlIHdyaXRpbmcgbW9kZSBpbnRvIGFjY291bnQuCisgICAgICAgIChlLmcuIHdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7CisgICAgICAgICAgcnVuIGxvZ2ljYWwgcmVjdDogWzAsIDBd
WzIweDE4XQorICAgICAgICAgIGluIGEgZmxpcHBlZCBibG9jayBib3g6IFsxMCwgMTBdWzEwMHg1
MF0KKyAgICAgICAgICB3aXRoIHRoZSBwYWludCBvZmZzZXQ6IFs4LCA4XQorCisgICAgICAgICAg
dHJhbnNsYXRlcyB0bzogWzkwLCA4XVsyMHgxOF0KKyAgICAgICAgKQorCisgICAgICAgICogbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6cGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OnBhaW50VGV4dFJ1blVz
aW5nUGh5c2ljYWxDb29yZGluYXRlcyk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZUxheW91dC5oOgorCiAyMDIxLTA4LTIxICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50IEF1ZGlvU2Vzc2lvbiBjYXRl
Z29yeSBmcm9tIG1vdmluZyBvdXQgb2YgUGxheUFuZFJlY29yZCB0b28gcXVpY2tseQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAppbmRleCBjZWZjNTA2NWExZWQ3YTVlZWJiMTQ1MWUw
YzI1NmY1Mjk5MjRiMGZiLi5kYmFhMGEyNmU4MjcyNDAyMGIwN2JiNWFmMjY1MzI4YmUzYTg4YjRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtNDU0LDcwICs0NTQsMTYg
QEAgdm9pZCBMaW5lTGF5b3V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIGlmIChwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQ
aGFzZTo6Rm9yZWdyb3VuZCAmJiBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZTo6RXZlbnRS
ZWdpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8mIGlubGluZUNvbnRlbnQgPSAqbV9p
bmxpbmVDb250ZW50OwotICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gZmxvdygpLmRvY3Vt
ZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKLQogICAgIGF1dG8gcGFpbnRSZWN0ID0gcGFpbnRJ
bmZvLnJlY3Q7CiAgICAgcGFpbnRSZWN0Lm1vdmVCeSgtcGFpbnRPZmZzZXQpOwogCi0gICAgZm9y
IChhdXRvJiBydW4gOiBpbmxpbmVDb250ZW50LnJ1bnNGb3JSZWN0KHBhaW50UmVjdCkpIHsKLSAg
ICAgICAgaWYgKCFydW4udGV4dENvbnRlbnQoKSkgewotICAgICAgICAgICAgYXV0byYgcmVuZGVy
ZXIgPSBtX2JveFRyZWUucmVuZGVyZXJGb3JMYXlvdXRCb3gocnVuLmxheW91dEJveCgpKTsKLSAg
ICAgICAgICAgIGlmIChyZW5kZXJlci5pc1JlcGxhY2VkKCkgJiYgaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiByZW5kZXJCb3ggPSBkb3duY2FzdDxSZW5k
ZXJCb3g+KHJlbmRlcmVyKTsKLSAgICAgICAgICAgICAgICBpZiAocmVuZGVyQm94Lmhhc1NlbGZQ
YWludGluZ0xheWVyKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgICAgIGlmICghcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5kZXJCb3gpKQot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICBmb3IgKGF1dG8mIHJ1biA6IG1faW5s
aW5lQ29udGVudC0+cnVuc0ZvclJlY3QocGFpbnRSZWN0KSkgeworICAgICAgICBpZiAocnVuLnRl
eHRDb250ZW50KCkpCisgICAgICAgICAgICBwYWludFRleHRSdW5Vc2luZ1BoeXNpY2FsQ29vcmRp
bmF0ZXMocGFpbnRJbmZvLCBwYWludE9mZnNldCwgbV9pbmxpbmVDb250ZW50LT5saW5lRm9yUnVu
KHJ1biksIHJ1bik7CisgICAgICAgIGVsc2UgaWYgKGF1dG8mIHJlbmRlcmVyID0gbV9ib3hUcmVl
LnJlbmRlcmVyRm9yTGF5b3V0Qm94KHJ1bi5sYXlvdXRCb3goKSk7IGlzPFJlbmRlckJveD4ocmVu
ZGVyZXIpICYmIHJlbmRlcmVyLmlzUmVwbGFjZWQoKSkgeworICAgICAgICAgICAgYXV0byYgcmVu
ZGVyQm94ID0gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcik7CisgICAgICAgICAgICBpZiAo
IXJlbmRlckJveC5oYXNTZWxmUGFpbnRpbmdMYXllcigpICYmIHBhaW50SW5mby5zaG91bGRQYWlu
dFdpdGhpblJvb3QocmVuZGVyQm94KSkKICAgICAgICAgICAgICAgICByZW5kZXJCb3gucGFpbnRB
c0lubGluZUJsb2NrKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBhdXRvJiB0ZXh0Q29udGVu
dCA9ICpydW4udGV4dENvbnRlbnQoKTsKLSAgICAgICAgaWYgKCF0ZXh0Q29udGVudC5sZW5ndGgo
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGF1dG8mIHN0eWxlID0gcnVuLnN0
eWxlKCk7Ci0gICAgICAgIGlmIChzdHlsZS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0eTo6Vmlz
aWJsZSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGF1dG8gcmVjdCA9IEZsb2F0
UmVjdCB7IHJ1bi5yZWN0KCkgfTsKLSAgICAgICAgYXV0byB2aXN1YWxPdmVyZmxvd1JlY3QgPSBG
bG9hdFJlY3QgeyBydW4uaW5rT3ZlcmZsb3coKSB9OwotICAgICAgICBpZiAocGFpbnRSZWN0Lnko
KSA+IHZpc3VhbE92ZXJmbG93UmVjdC5tYXhZKCkgfHwgcGFpbnRSZWN0Lm1heFkoKSA8IHZpc3Vh
bE92ZXJmbG93UmVjdC55KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBpZiAo
cGFpbnRJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCkgewotICAgICAgICAgICAgaWYgKHN0eWxlLnBv
aW50ZXJFdmVudHMoKSAhPSBQb2ludGVyRXZlbnRzOjpOb25lKSB7Ci0gICAgICAgICAgICAgICAg
dmlzdWFsT3ZlcmZsb3dSZWN0Lm1vdmVCeShwYWludE9mZnNldCk7Ci0gICAgICAgICAgICAgICAg
cGFpbnRJbmZvLmV2ZW50UmVnaW9uQ29udGV4dC0+dW5pdGUoZW5jbG9zaW5nSW50UmVjdCh2aXN1
YWxPdmVyZmxvd1JlY3QpLCBzdHlsZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8mIGxpbmUgPSBpbmxpbmVDb250ZW50Lmxp
bmVGb3JSdW4ocnVuKTsKLSAgICAgICAgYXV0byBleHBhbnNpb24gPSBydW4uZXhwYW5zaW9uKCk7
Ci0gICAgICAgIC8vIFRleHRSdW4gZXhwZWN0cyB0aGUgeFBvcyB0byBiZSBhZGp1c3RlZCB3aXRo
IHRoZSBhbGlnbWVudCBvZmZzZXQgKGUuZy4gd2hlbiB0aGUgbGluZSBpcyBjZW50ZXIgYWxpZ25l
ZAotICAgICAgICAvLyBhbmQgdGhlIHJ1biBzdGFydHMgYXQgMTAwcHgsIGR1ZSB0byB0aGUgaG9y
aXpvbnRhbCBhbGlnbWVudCwgdGhlIHhwb3MgaXMgc3VwcG9zZWQgdG8gYmUgYXQgMHB4KS4KLSAg
ICAgICAgYXV0byYgZm9udENhc2NhZGUgPSBzdHlsZS5mb250Q2FzY2FkZSgpOwotICAgICAgICBh
dXRvIHhQb3MgPSByZWN0LngoKSAtIChsaW5lLmxpbmVCb3hMZWZ0KCkgKyBsaW5lLmNvbnRlbnRM
ZWZ0KCkpOwotICAgICAgICBXZWJDb3JlOjpUZXh0UnVuIHRleHRSdW4geyB0ZXh0Q29udGVudC5y
ZW5kZXJlZENvbnRlbnQoKSwgeFBvcywgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24sIGV4
cGFuc2lvbi5iZWhhdmlvciB9OwotICAgICAgICB0ZXh0UnVuLnNldFRhYlNpemUoIXN0eWxlLmNv
bGxhcHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50YWJTaXplKCkpOwotCi0gICAgICAgIFRleHRQYWlu
dGVyIHRleHRQYWludGVyKHBhaW50SW5mby5jb250ZXh0KCkpOwotICAgICAgICB0ZXh0UGFpbnRl
ci5zZXRGb250KGZvbnRDYXNjYWRlKTsKLSAgICAgICAgdGV4dFBhaW50ZXIuc2V0U3R5bGUoY29t
cHV0ZVRleHRQYWludFN0eWxlKGZsb3coKS5mcmFtZSgpLCBzdHlsZSwgcGFpbnRJbmZvKSk7Ci0g
ICAgICAgIHRleHRQYWludGVyLnNldEdseXBoRGlzcGxheUxpc3RJZk5lZWRlZChydW4sIHBhaW50
SW5mbywgZm9udENhc2NhZGUsIHBhaW50SW5mby5jb250ZXh0KCksIHRleHRSdW4pOwotCi0gICAg
ICAgIGF1dG8gdGV4dE9yaWdpbiA9IEZsb2F0UG9pbnQgeyBwYWludE9mZnNldC54KCkgKyByZWN0
LngoKSwgcm91bmRUb0RldmljZVBpeGVsKHBhaW50T2Zmc2V0LnkoKSArIHJlY3QueSgpICsgZm9u
dENhc2NhZGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSwgZGV2aWNlU2NhbGVGYWN0b3IpIH07Ci0g
ICAgICAgIHRleHRQYWludGVyLnBhaW50KHRleHRSdW4sIHJlY3QsIHRleHRPcmlnaW4pOwotCi0g
ICAgICAgIGlmICghc3R5bGUudGV4dERlY29yYXRpb25zSW5FZmZlY3QoKS5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgIGF1dG8mIHRleHRSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlclRleHQ+KG1f
Ym94VHJlZS5yZW5kZXJlckZvckxheW91dEJveChydW4ubGF5b3V0Qm94KCkpKTsKLSAgICAgICAg
ICAgIGF1dG8gZGVjb3JhdGlvblBhaW50ZXIgPSBUZXh0RGVjb3JhdGlvblBhaW50ZXIgeyBwYWlu
dEluZm8uY29udGV4dCgpLCBzdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpLCB0ZXh0UmVu
ZGVyZXIsIGZhbHNlLCBmb250Q2FzY2FkZSB9OwotICAgICAgICAgICAgZGVjb3JhdGlvblBhaW50
ZXIuc2V0VGV4dFJ1bkl0ZXJhdG9yKGlubGluZUNvbnRlbnQuaXRlcmF0b3JGb3JUZXh0UnVuKHJ1
bikpOwotICAgICAgICAgICAgZGVjb3JhdGlvblBhaW50ZXIuc2V0V2lkdGgocmVjdC53aWR0aCgp
KTsKLSAgICAgICAgICAgIGRlY29yYXRpb25QYWludGVyLnBhaW50VGV4dERlY29yYXRpb24odGV4
dFJ1biwgdGV4dE9yaWdpbiwgcmVjdC5sb2NhdGlvbigpICsgcGFpbnRPZmZzZXQpOwogICAgICAg
ICB9CiAgICAgfQogfQpAQCAtNjAyLDYgKzU0OCw4NSBAQCB2b2lkIExpbmVMYXlvdXQ6OnJlbGVh
c2VJbmxpbmVJdGVtQ2FjaGUoKQogICAgIG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmlubGluZUl0
ZW1zKCkuY2xlYXIoKTsKIH0KIAordm9pZCBMaW5lTGF5b3V0OjpwYWludFRleHRSdW5Vc2luZ1Bo
eXNpY2FsQ29vcmRpbmF0ZXMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCwgY29uc3QgTGluZSYgbGluZSwgY29uc3QgUnVuJiBydW4pCit7CisgICAg
YXV0byYgc3R5bGUgPSBydW4uc3R5bGUoKTsKKyAgICBpZiAocnVuLnN0eWxlKCkudmlzaWJpbGl0
eSgpICE9IFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8m
IHRleHRDb250ZW50ID0gKnJ1bi50ZXh0Q29udGVudCgpOworICAgIGlmICghdGV4dENvbnRlbnQu
bGVuZ3RoKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGZvcm1hdHRpbmdDb250ZXh0
Um9vdCA9IGZsb3coKTsKKyAgICBhdXRvIGJsb2NrSXNIb3Jpem9udGFsV3JpdGluZyA9IGZvcm1h
dHRpbmdDb250ZXh0Um9vdC5zdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAg
YXV0byBwaHlzaWNhbFBhaW50T2Zmc2V0ID0gcGFpbnRPZmZzZXQ7CisgICAgaWYgKCFibG9ja0lz
SG9yaXpvbnRhbFdyaXRpbmcpIHsKKyAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2h5IHRo
aXMgdHJhbnNsYXRlIGlzIHJlcXVpcmVkLgorICAgICAgICBwaHlzaWNhbFBhaW50T2Zmc2V0Lm1v
dmUoeyAwLCAtcnVuLnJlY3QoKS5oZWlnaHQoKSB9KTsKKyAgICB9CisKKyAgICBhdXRvIHBoeXNp
Y2FsUmVjdCA9IFsmXShjb25zdCBhdXRvJiByZWN0KSB7CisgICAgICAgIGlmICghc3R5bGUuaXNG
bGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiByZWN0OworICAg
ICAgICBpZiAoIWJsb2NrSXNIb3Jpem9udGFsV3JpdGluZykKKyAgICAgICAgICAgIHJldHVybiBG
bG9hdFJlY3QgeyBmb3JtYXR0aW5nQ29udGV4dFJvb3Qud2lkdGgoKSAtIHJlY3QubWF4WSgpLCBy
ZWN0LngoKSAsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSB9OworICAgICAgICBBU1NFUlRf
Tk9UX0lNUExFTUVOVEVEX1lFVCgpOworICAgICAgICByZXR1cm4gcmVjdDsKKyAgICB9OworCisg
ICAgYXV0byB2aXN1YWxPdmVyZmxvd1JlY3QgPSBwaHlzaWNhbFJlY3QocnVuLmlua092ZXJmbG93
KCkpOworCisgICAgYXV0byBkYW1hZ2VkUmVjdCA9IHBhaW50SW5mby5yZWN0OworICAgIGRhbWFn
ZWRSZWN0Lm1vdmVCeSgtcGh5c2ljYWxQYWludE9mZnNldCk7CisgICAgaWYgKGRhbWFnZWRSZWN0
LnkoKSA+IHZpc3VhbE92ZXJmbG93UmVjdC5tYXhZKCkgfHwgZGFtYWdlZFJlY3QubWF4WSgpIDwg
dmlzdWFsT3ZlcmZsb3dSZWN0LnkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhaW50
SW5mby5ldmVudFJlZ2lvbkNvbnRleHQpIHsKKyAgICAgICAgaWYgKHN0eWxlLnBvaW50ZXJFdmVu
dHMoKSAhPSBQb2ludGVyRXZlbnRzOjpOb25lKSB7CisgICAgICAgICAgICB2aXN1YWxPdmVyZmxv
d1JlY3QubW92ZUJ5KHBoeXNpY2FsUGFpbnRPZmZzZXQpOworICAgICAgICAgICAgcGFpbnRJbmZv
LmV2ZW50UmVnaW9uQ29udGV4dC0+dW5pdGUoZW5jbG9zaW5nSW50UmVjdCh2aXN1YWxPdmVyZmxv
d1JlY3QpLCBzdHlsZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGF1dG8mIHBhaW50Q29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0KCk7CisgICAgYXV0byBleHBh
bnNpb24gPSBydW4uZXhwYW5zaW9uKCk7CisgICAgLy8gVGV4dFJ1biBleHBlY3RzIHRoZSB4UG9z
IHRvIGJlIGFkanVzdGVkIHdpdGggdGhlIGFsaWdtZW50IG9mZnNldCAoZS5nLiB3aGVuIHRoZSBs
aW5lIGlzIGNlbnRlciBhbGlnbmVkCisgICAgLy8gYW5kIHRoZSBydW4gc3RhcnRzIGF0IDEwMHB4
LCBkdWUgdG8gdGhlIGhvcml6b250YWwgYWxpZ21lbnQsIHRoZSB4cG9zIGlzIHN1cHBvc2VkIHRv
IGJlIGF0IDBweCkuCisgICAgYXV0byYgZm9udENhc2NhZGUgPSBzdHlsZS5mb250Q2FzY2FkZSgp
OworICAgIGF1dG8geFBvcyA9IHJ1bi5yZWN0KCkueCgpIC0gKGxpbmUubGluZUJveExlZnQoKSAr
IGxpbmUuY29udGVudExlZnQoKSk7CisgICAgYXV0byB0ZXh0UnVuID0gV2ViQ29yZTo6VGV4dFJ1
biB7IHRleHRDb250ZW50LnJlbmRlcmVkQ29udGVudCgpLCB4UG9zLCBleHBhbnNpb24uaG9yaXpv
bnRhbEV4cGFuc2lvbiwgZXhwYW5zaW9uLmJlaGF2aW9yIH07CisgICAgdGV4dFJ1bi5zZXRUYWJT
aXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6ZSgpKTsKKworICAg
IGF1dG8gdGV4dFBhaW50ZXIgPSBUZXh0UGFpbnRlciB7IHBhaW50Q29udGV4dCB9OworICAgIHRl
eHRQYWludGVyLnNldEZvbnQoZm9udENhc2NhZGUpOworICAgIHRleHRQYWludGVyLnNldFN0eWxl
KGNvbXB1dGVUZXh0UGFpbnRTdHlsZShmb3JtYXR0aW5nQ29udGV4dFJvb3QuZnJhbWUoKSwgc3R5
bGUsIHBhaW50SW5mbykpOworICAgIHRleHRQYWludGVyLnNldEdseXBoRGlzcGxheUxpc3RJZk5l
ZWRlZChydW4sIHBhaW50SW5mbywgZm9udENhc2NhZGUsIHBhaW50Q29udGV4dCwgdGV4dFJ1bik7
CisKKyAgICAvLyBQYWludGluZyB1c2VzIG9ubHkgcGh5c2ljYWwgY29vcmRpbmF0ZXMuCisgICAg
eworICAgICAgICBhdXRvIHJ1blJlY3QgPSBwaHlzaWNhbFJlY3QocnVuLnJlY3QoKSk7CisgICAg
ICAgIGF1dG8gYm94UmVjdCA9IEZsb2F0UmVjdCB7IEZsb2F0UG9pbnQgeyBwaHlzaWNhbFBhaW50
T2Zmc2V0LngoKSArIHJ1blJlY3QueCgpLCBwaHlzaWNhbFBhaW50T2Zmc2V0LnkoKSArIHJ1blJl
Y3QueSgpIH0sIHJ1blJlY3Quc2l6ZSgpIH07CisgICAgICAgIGF1dG8gdGV4dE9yaWdpbiA9IEZs
b2F0UG9pbnQgeyBib3hSZWN0LngoKSwgcm91bmRUb0RldmljZVBpeGVsKGJveFJlY3QueSgpICsg
Zm9udENhc2NhZGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSwgZm9ybWF0dGluZ0NvbnRleHRSb290
LmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkgfTsKKworICAgICAgICBhdXRvIHNob3Vs
ZFJvdGF0ZSA9ICFibG9ja0lzSG9yaXpvbnRhbFdyaXRpbmc7CisgICAgICAgIGlmIChzaG91bGRS
b3RhdGUpCisgICAgICAgICAgICBwYWludENvbnRleHQuY29uY2F0Q1RNKHJvdGF0aW9uKGJveFJl
Y3QsIENsb2Nrd2lzZSkpOworICAgICAgICB0ZXh0UGFpbnRlci5wYWludCh0ZXh0UnVuLCBydW5S
ZWN0LCB0ZXh0T3JpZ2luKTsKKworICAgICAgICBpZiAoIXN0eWxlLnRleHREZWNvcmF0aW9uc0lu
RWZmZWN0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBhdXRvJiB0ZXh0UmVuZGVyZXIgPSBk
b3duY2FzdDxSZW5kZXJUZXh0PihtX2JveFRyZWUucmVuZGVyZXJGb3JMYXlvdXRCb3gocnVuLmxh
eW91dEJveCgpKSk7CisgICAgICAgICAgICBhdXRvIGRlY29yYXRpb25QYWludGVyID0gVGV4dERl
Y29yYXRpb25QYWludGVyIHsgcGFpbnRDb250ZXh0LCBzdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVm
ZmVjdCgpLCB0ZXh0UmVuZGVyZXIsIGZhbHNlLCBmb250Q2FzY2FkZSB9OworICAgICAgICAgICAg
ZGVjb3JhdGlvblBhaW50ZXIuc2V0VGV4dFJ1bkl0ZXJhdG9yKG1faW5saW5lQ29udGVudC0+aXRl
cmF0b3JGb3JUZXh0UnVuKHJ1bikpOworICAgICAgICAgICAgZGVjb3JhdGlvblBhaW50ZXIuc2V0
V2lkdGgocnVuUmVjdC53aWR0aCgpKTsKKyAgICAgICAgICAgIGRlY29yYXRpb25QYWludGVyLnBh
aW50VGV4dERlY29yYXRpb24odGV4dFJ1biwgdGV4dE9yaWdpbiwgcnVuUmVjdC5sb2NhdGlvbigp
ICsgcGh5c2ljYWxQYWludE9mZnNldCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNob3VsZFJv
dGF0ZSkKKyAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuY29uY2F0Q1RNKHJvdGF0aW9u
KGJveFJlY3QsIENvdW50ZXJjbG9ja3dpc2UpKTsKKyAgICB9Cit9CisKICNpZiBFTkFCTEUoVFJF
RV9ERUJVR0dJTkcpCiB2b2lkIExpbmVMYXlvdXQ6Om91dHB1dExpbmVUcmVlKFdURjo6VGV4dFN0
cmVhbSYgc3RyZWFtLCBzaXplX3QgZGVwdGgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmgKaW5kZXggMDkxYTYwMTRiNzE5YjUzZWM0N2YwNTJhYTNhYmE4NmY4ZmEwNmZjNi4u
MzQ2MDk0ODgxOGU0NWRhODYwYjBmN2RiMzdlY2E0ZDFhMWNkMGFhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuaApAQCAtMTE1LDYgKzExNSw4IEBAIHByaXZhdGU6CiAgICAgSW5saW5l
Q29udGVudCYgZW5zdXJlSW5saW5lQ29udGVudCgpOwogICAgIHZvaWQgdXBkYXRlTGF5b3V0Qm94
RGltZW5zaW9ucyhjb25zdCBSZW5kZXJCb3gmKTsKIAorICAgIHZvaWQgcGFpbnRUZXh0UnVuVXNp
bmdQaHlzaWNhbENvb3JkaW5hdGVzKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNldCwgY29uc3QgTGluZSYsIGNvbnN0IFJ1biYpOworCiAgICAgY29uc3QgTGF5b3V0OjpD
b250YWluZXJCb3gmIHJvb3RMYXlvdXRCb3goKSBjb25zdDsKICAgICBMYXlvdXQ6OkNvbnRhaW5l
ckJveCYgcm9vdExheW91dEJveCgpOwogICAgIHZvaWQgcmVsZWFzZUlubGluZUl0ZW1DYWNoZSgp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>