<?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>171706</bug_id>
          
          <creation_ts>2017-05-04 18:40:28 -0700</creation_ts>
          <short_desc>REGRESSION(r216223): not quite ready (Requested by thorton on #webkit).</short_desc>
          <delta_ts>2017-05-04 18:42:45 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>171701</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1304940</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 18:40:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/216223 broke the build:
not quite ready (Requested by thorton on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304941</commentid>
    <comment_count>1</comment_count>
      <attachid>309125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 18:40:33 -0700</bug_when>
    <thetext>Created attachment 309125
ROLLOUT of r216223

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304943</commentid>
    <comment_count>2</comment_count>
      <attachid>309125</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 18:42:43 -0700</bug_when>
    <thetext>Comment on attachment 309125
ROLLOUT of r216223

Clearing flags on attachment: 309125

Committed r216224: &lt;http://trac.webkit.org/changeset/216224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304944</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-04 18:42:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309125</attachid>
            <date>2017-05-04 18:40:33 -0700</date>
            <delta_ts>2017-05-04 18:42:43 -0700</delta_ts>
            <desc>ROLLOUT of r216223</desc>
            <filename>bug-171706-20170504214032.patch</filename>
            <type>text/plain</type>
            <size>21216</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWFkZWE2MDVmNjc1YmJj
NmVhMzRlOGRiYzk1OTFkYjRlOGU3NjI0Ny4uZDI2YmUwYmFiOWM3YzgyYTMzYzk1OTM2MmM2Mjg1
NzMwMzhlMjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTA0ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjE2MjIzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxNzA2CisKKyAgICAgICAgbm90IHF1aXRlIHJlYWR5IChSZXF1ZXN0
ZWQgYnkgdGhvcnRvbiBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6
CisKKyAgICAgICAgIltNYWNdIE1vZGVybml6ZSBpbWFnZSBmb3IgZHJhZ2dlZCBsaW5rIgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzAxCisgICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxNjIyMworCiAyMDE3LTA1LTA0
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNd
IE1vZGVybml6ZSBpbWFnZSBmb3IgZHJhZ2dlZCBsaW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCmluZGV4IGUwOGI1NTg5MjQ3ODVjMzU3MjJmMjg1ZDQ4
OTM4NmVhN2Q5ZmVmNTkuLjI0NzNhNDM1ZWQ5MGUwNDQxZjk1M2RlNWQ1MDE3Nzg3ZDM3ZWVkNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tCkBAIC01
MCw3ICs1MCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgaW50IERyYWdDb250
cm9sbGVyOjpMaW5rRHJhZ0JvcmRlckluc2V0ID0gLTEwOworY29uc3QgaW50IERyYWdDb250cm9s
bGVyOjpMaW5rRHJhZ0JvcmRlckluc2V0ID0gLTI7CiAKIGNvbnN0IGludCBEcmFnQ29udHJvbGxl
cjo6TWF4T3JpZ2luYWxJbWFnZUFyZWEgPSAxNTAwICogMTUwMDsKIGNvbnN0IGludCBEcmFnQ29u
dHJvbGxlcjo6RHJhZ0ljb25SaWdodEluc2V0ID0gNzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRHJhZ0ltYWdlTWFjLm1tCmluZGV4IGRkNGEzYjIxZDY0YTg0ZjI5Njg0ZGI5NDNhYTIy
NzA2NTkyZDFmMzUuLjJhOGRmZDNmNWU3YTllNDEwMGU4ODg1ZjQzNGQ5N2JkNzlhNzdiMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQpAQCAtMzEsMjkg
KzMxLDIyIEBACiAjaW1wb3J0ICJCaXRtYXBJbWFnZS5oIgogI2ltcG9ydCAiQ29yZUdyYXBoaWNz
U1BJLmgiCiAjaW1wb3J0ICJFbGVtZW50LmgiCi0jaW1wb3J0ICJGbG9hdFJvdW5kZWRSZWN0Lmgi
CiAjaW1wb3J0ICJGb250Q2FzY2FkZS5oIgogI2ltcG9ydCAiRm9udERlc2NyaXB0aW9uLmgiCiAj
aW1wb3J0ICJGb250U2VsZWN0b3IuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2lt
cG9ydCAiSW1hZ2UuaCIKLSNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisjaW1wb3J0ICJVUkwuaCIK
ICNpbXBvcnQgIlN0cmluZ1RydW5jYXRvci5oIgogI2ltcG9ydCAiVGV4dEluZGljYXRvci5oIgog
I2ltcG9ydCAiVGV4dFJ1bi5oIgotI2ltcG9ydCAiVVJMLmgiCiAjaW1wb3J0IDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MjAwCi0jaW1wb3J0IDxMaW5rUHJlc2VudGF0aW9uL0xQTlNVUkxFeHRyYXMuaD4KLVNPRlRfTElO
S19QUklWQVRFX0ZSQU1FV09SSyhMaW5rUHJlc2VudGF0aW9uKQotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogSW50U2l6ZSBkcmFnSW1hZ2VTaXplKFJldGFpblB0cjxOU0ltYWdlPiBp
bWFnZSkKIHsKLSAgICByZXR1cm4gKEludFNpemUpW2ltYWdlIHNpemVdOworICAgIHJldHVybiAo
SW50U2l6ZSlbaW1hZ2UuZ2V0KCkgc2l6ZV07CiB9CiAKIHZvaWQgZGVsZXRlRHJhZ0ltYWdlKFJl
dGFpblB0cjxOU0ltYWdlPikKQEAgLTY0LDE1ICs1NywxNSBAQCB2b2lkIGRlbGV0ZURyYWdJbWFn
ZShSZXRhaW5QdHI8TlNJbWFnZT4pCiAKIFJldGFpblB0cjxOU0ltYWdlPiBzY2FsZURyYWdJbWFn
ZShSZXRhaW5QdHI8TlNJbWFnZT4gaW1hZ2UsIEZsb2F0U2l6ZSBzY2FsZSkKIHsKLSAgICBOU1Np
emUgb3JpZ2luYWxTaXplID0gW2ltYWdlIHNpemVdOworICAgIE5TU2l6ZSBvcmlnaW5hbFNpemUg
PSBbaW1hZ2UuZ2V0KCkgc2l6ZV07CiAgICAgTlNTaXplIG5ld1NpemUgPSBOU01ha2VTaXplKChv
cmlnaW5hbFNpemUud2lkdGggKiBzY2FsZS53aWR0aCgpKSwgKG9yaWdpbmFsU2l6ZS5oZWlnaHQg
KiBzY2FsZS5oZWlnaHQoKSkpOwogICAgIG5ld1NpemUud2lkdGggPSByb3VuZGYobmV3U2l6ZS53
aWR0aCk7CiAgICAgbmV3U2l6ZS5oZWlnaHQgPSByb3VuZGYobmV3U2l6ZS5oZWlnaHQpOwogI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIFtpbWFnZSBzZXRTY2FsZXNXaGVu
UmVzaXplZDpZRVNdOworICAgIFtpbWFnZS5nZXQoKSBzZXRTY2FsZXNXaGVuUmVzaXplZDpZRVNd
OwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgIFtpbWFnZSBzZXRTaXplOm5ld1Np
emVdOworICAgIFtpbWFnZS5nZXQoKSBzZXRTaXplOm5ld1NpemVdOwogICAgIHJldHVybiBpbWFn
ZTsKIH0KICAgICAKQEAgLTgxLDExICs3NCwxMSBAQCBSZXRhaW5QdHI8TlNJbWFnZT4gZGlzc29s
dmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKFJldGFpblB0cjxOU0ltYWdlPiBpbWFnZSwgZmxvYXQgZAog
ICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBSZXRhaW5QdHI8TlNJ
bWFnZT4gZGlzc29sdmVkSW1hZ2UgPSBhZG9wdE5TKFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhT
aXplOltpbWFnZSBzaXplXV0pOworICAgIFJldGFpblB0cjxOU0ltYWdlPiBkaXNzb2x2ZWRJbWFn
ZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6W2ltYWdlLmdldCgpIHNp
emVdXSk7CiAgICAgCi0gICAgW2Rpc3NvbHZlZEltYWdlIGxvY2tGb2N1c107Ci0gICAgW2ltYWdl
IGRyYXdBdFBvaW50Ok5TWmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwgMCwgW2ltYWdl
IHNpemVdLndpZHRoLCBbaW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlNDb21wb3NpdGlu
Z09wZXJhdGlvbkNvcHkgZnJhY3Rpb246ZGVsdGFdOwotICAgIFtkaXNzb2x2ZWRJbWFnZSB1bmxv
Y2tGb2N1c107CisgICAgW2Rpc3NvbHZlZEltYWdlLmdldCgpIGxvY2tGb2N1c107CisgICAgW2lt
YWdlLmdldCgpIGRyYXdBdFBvaW50Ok5TWmVyb1BvaW50IGZyb21SZWN0Ok5TTWFrZVJlY3QoMCwg
MCwgW2ltYWdlIHNpemVdLndpZHRoLCBbaW1hZ2Ugc2l6ZV0uaGVpZ2h0KSBvcGVyYXRpb246TlND
b21wb3NpdGluZ09wZXJhdGlvbkNvcHkgZnJhY3Rpb246ZGVsdGFdOworICAgIFtkaXNzb2x2ZWRJ
bWFnZS5nZXQoKSB1bmxvY2tGb2N1c107CiAKICAgICByZXR1cm4gZGlzc29sdmVkSW1hZ2U7CiB9
CkBAIC0xMDcsNyArMTAwLDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShJbWFnZSogaW1hZ2UsIEltYWdlT3JpZW50YXRpb25EZXNjcmkKICAgICAgICAgICAg
IEZsb2F0UmVjdCBkZXN0UmVjdChGbG9hdFBvaW50KCksIHNpemVSZXNwZWN0aW5nT3JpZW50YXRp
b24pOwogCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gcm90YXRlZERyYWdJbWFnZSA9
IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aFNpemU6KE5TU2l6ZSkoc2l6ZVJlc3Bl
Y3RpbmdPcmllbnRhdGlvbildKTsKLSAgICAgICAgICAgIFtyb3RhdGVkRHJhZ0ltYWdlIGxvY2tG
b2N1c107CisgICAgICAgICAgICBbcm90YXRlZERyYWdJbWFnZS5nZXQoKSBsb2NrRm9jdXNdOwog
CiAgICAgICAgICAgICAvLyBJbWFnZU9yaWVudGF0aW9uIHVzZXMgdG9wLWxlZnQgY29vcmRpbmF0
ZXMsIG5lZWQgdG8gZmxpcCB0byBib3R0b20tbGVmdCwgYXBwbHkuLi4KICAgICAgICAgICAgIENH
QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybSA9IENHQWZmaW5lVHJhbnNmb3JtTWFrZVRyYW5zbGF0
aW9uKDAsIGRlc3RSZWN0LmhlaWdodCgpKTsKQEAgLTEyMiwxOSArMTE1LDE5IEBAIFJldGFpblB0
cjxOU0ltYWdlPiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltYWdlLCBJbWFnZU9y
aWVudGF0aW9uRGVzY3JpCiAgICAgICAgICAgICB0cmFuc2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9y
bVNjYWxlKHRyYW5zZm9ybSwgMSwgLTEpOwogCiAgICAgICAgICAgICBSZXRhaW5QdHI8TlNBZmZp
bmVUcmFuc2Zvcm0+IGNvY29hVHJhbnNmb3JtID0gYWRvcHROUyhbW05TQWZmaW5lVHJhbnNmb3Jt
IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0gc2V0VHJhbnNmb3Jt
U3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFuc2Zvcm1dOwotICAgICAgICAg
ICAgW2NvY29hVHJhbnNmb3JtIGNvbmNhdF07CisgICAgICAgICAgICBbY29jb2FUcmFuc2Zvcm0u
Z2V0KCkgc2V0VHJhbnNmb3JtU3RydWN0OiooTlNBZmZpbmVUcmFuc2Zvcm1TdHJ1Y3QqKSZ0cmFu
c2Zvcm1dOworICAgICAgICAgICAgW2NvY29hVHJhbnNmb3JtLmdldCgpIGNvbmNhdF07CiAKICAg
ICAgICAgICAgIFtpbWFnZS0+c25hcHNob3ROU0ltYWdlKCkgZHJhd0luUmVjdDpkZXN0UmVjdCBm
cm9tUmVjdDpOU01ha2VSZWN0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkgb3Bl
cmF0aW9uOk5TQ29tcG9zaXRpbmdPcGVyYXRpb25Tb3VyY2VPdmVyIGZyYWN0aW9uOjEuMF07CiAK
LSAgICAgICAgICAgIFtyb3RhdGVkRHJhZ0ltYWdlIHVubG9ja0ZvY3VzXTsKKyAgICAgICAgICAg
IFtyb3RhdGVkRHJhZ0ltYWdlLmdldCgpIHVubG9ja0ZvY3VzXTsKIAogICAgICAgICAgICAgcmV0
dXJuIHJvdGF0ZWREcmFnSW1hZ2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBhdXRvIGRyYWdJ
bWFnZSA9IGltYWdlLT5zbmFwc2hvdE5TSW1hZ2UoKTsKLSAgICBbZHJhZ0ltYWdlIHNldFNpemU6
KE5TU2l6ZSlzaXplXTsKKyAgICBbZHJhZ0ltYWdlLmdldCgpIHNldFNpemU6KE5TU2l6ZSlzaXpl
XTsKICAgICByZXR1cm4gZHJhZ0ltYWdlOwogfQogICAgIApAQCAtMTU0LDE1MiArMTQ3LDIwMCBA
QCBSZXRhaW5QdHI8TlNJbWFnZT4gY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlRmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlbgogfQogCiAKLWNvbnN0IENHRmxvYXQgbGlua0ltYWdl
UGFkZGluZyA9IDEwOyAvLyBLZWVwIGluIHN5bmMgd2l0aCBEcmFnQ29udHJvbGxlcjo6TGlua0Ry
YWdCb3JkZXJJbnNldC4KLWNvbnN0IENHRmxvYXQgbGlua0ltYWdlRG9tYWluQmFzZWxpbmVUb1Rp
dGxlQmFzZWxpbmUgPSAxODsKLWNvbnN0IENHRmxvYXQgbGlua0ltYWdlQ29ybmVyUmFkaXVzID0g
NTsKLWNvbnN0IENHRmxvYXQgbGlua0ltYWdlTWF4aW11bVdpZHRoID0gNDAwOwotY29uc3QgQ0dG
bG9hdCBsaW5rSW1hZ2VGb250U2l6ZSA9IDExOwotY29uc3QgQ0ZJbmRleCBsaW5rSW1hZ2VUaXRs
ZU1heGltdW1MaW5lQ291bnQgPSAyOwotCi1zdHJ1Y3QgTGlua0ltYWdlTGF5b3V0IHsKLSAgICBM
aW5rSW1hZ2VMYXlvdXQoVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Citjb25zdCBmbG9hdCBE
cmFnTGFiZWxCb3JkZXJYID0gNDsKKy8vS2VlcCBib3JkZXJfeSBpbiBzeW5jaCB3aXRoIERyYWdD
b250cm9sbGVyOjpMaW5rRHJhZ0JvcmRlckluc2V0Citjb25zdCBmbG9hdCBEcmFnTGFiZWxCb3Jk
ZXJZID0gMjsKK2NvbnN0IGZsb2F0IERyYWdMYWJlbFJhZGl1cyA9IDU7Citjb25zdCBmbG9hdCBM
YWJlbEJvcmRlcllPZmZzZXQgPSAyOwogCi0gICAgc3RydWN0IExhYmVsTGluZSB7Ci0gICAgICAg
IEZsb2F0UG9pbnQgb3JpZ2luOwotICAgICAgICBSZXRhaW5QdHI8Q1RMaW5lUmVmPiBsaW5lOwot
ICAgIH07Ci0gICAgVmVjdG9yPExhYmVsTGluZT4gbGluZXM7Citjb25zdCBmbG9hdCBNaW5EcmFn
TGFiZWxXaWR0aEJlZm9yZUNsaXAgPSAxMjA7Citjb25zdCBmbG9hdCBNYXhEcmFnTGFiZWxXaWR0
aCA9IDMyMDsKIAotICAgIEZsb2F0UmVjdCBib3VuZGluZ1JlY3Q7Citjb25zdCBmbG9hdCBEcmFn
TGlua0xhYmVsRm9udHNpemUgPSAxMTsKK2NvbnN0IGZsb2F0IERyYWdMaW5rVXJsRm9udFNpemUg
PSAxMDsKIAotcHJpdmF0ZToKLSAgICB2b2lkIGFkZExpbmUoQ1RMaW5lUmVmLCBWZWN0b3I8Q0dQ
b2ludD4mIG9yaWdpbnMsIENGSW5kZXggbGluZUluZGV4LCBDR0Zsb2F0IHgsIENHRmxvYXQmIHks
IENHRmxvYXQmIG1heGltdW1Vc2VkVGV4dFdpZHRoLCBib29sIGlzTGFzdExpbmUpOwotfTsKLQot
TGlua0ltYWdlTGF5b3V0OjpMaW5rSW1hZ2VMYXlvdXQoVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dGl0bGVTdHJpbmcpCisvLyBGSVhNRSAtIHdlIHNob3VsZCBtb3ZlIGFsbCB0aGUgZnVuY3Rpb25h
bGl0eSBvZiBOU1N0cmluZyBleHRyYXMgdG8gV2ViQ29yZQorICAgIAorc3RhdGljIEZvbnRDYXNj
YWRlJiBmb250RnJvbU5TRm9udChOU0ZvbnQgKmZvbnQpCiB7Ci0gICAgTlNTdHJpbmcgKnRpdGxl
ID0gbnNTdHJpbmdOaWxJZkVtcHR5KHRpdGxlU3RyaW5nKTsKLSAgICBOU1VSTCAqY29jb2FVUkwg
PSB1cmw7Ci0gICAgTlNTdHJpbmcgKmFic29sdXRlVVJMU3RyaW5nID0gW2NvY29hVVJMIGFic29s
dXRlU3RyaW5nXTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MjAwCi0gICAgTGlua1ByZXNlbnRhdGlvbkxpYnJhcnkoKTsKLSAgICBOU1N0cmluZyAqZG9tYWlu
ID0gW2NvY29hVVJMIF9scF9zaW1wbGlmaWVkRGlzcGxheVN0cmluZ107Ci0jZWxzZQotICAgIE5T
U3RyaW5nICpkb21haW4gPSBhYnNvbHV0ZVVSTFN0cmluZzsKLSNlbmRpZgotCi0gICAgaWYgKFt0
aXRsZSBpc0VxdWFsVG9TdHJpbmc6YWJzb2x1dGVVUkxTdHJpbmddKQotICAgICAgICB0aXRsZSA9
IG5pbDsKLQotICAgIE5TRm9udCAqdGl0bGVGb250ID0gW05TRm9udCBib2xkU3lzdGVtRm9udE9m
U2l6ZTpsaW5rSW1hZ2VGb250U2l6ZV07Ci0gICAgTlNGb250ICpkb21haW5Gb250ID0gW05TRm9u
dCBzeXN0ZW1Gb250T2ZTaXplOmxpbmtJbWFnZUZvbnRTaXplXTsKLQotICAgIE5TQ29sb3IgKnRp
dGxlQ29sb3IgPSBbTlNDb2xvciBsYWJlbENvbG9yXTsKLSAgICBOU0NvbG9yICpkb21haW5Db2xv
ciA9IFtOU0NvbG9yIHNlY29uZGFyeUxhYmVsQ29sb3JdOwotCi0gICAgQ0dGbG9hdCBtYXhpbXVt
QXZhaWxhYmxlV2lkdGggPSBsaW5rSW1hZ2VNYXhpbXVtV2lkdGggLSBsaW5rSW1hZ2VQYWRkaW5n
ICogMjsKLQotICAgIENHRmxvYXQgY3VycmVudFkgPSBsaW5rSW1hZ2VQYWRkaW5nOwotICAgIENH
RmxvYXQgbWF4aW11bVVzZWRUZXh0V2lkdGggPSAwOwotCi0gICAgYXV0byBidWlsZExpbmVzID0g
W3RoaXMsIG1heGltdW1BdmFpbGFibGVXaWR0aCwgJm1heGltdW1Vc2VkVGV4dFdpZHRoLCAmY3Vy
cmVudFldIChOU1N0cmluZyAqdGV4dCwgTlNDb2xvciAqY29sb3IsIE5TRm9udCAqZm9udCwgQ0ZJ
bmRleCBtYXhpbXVtTGluZXMsIENUTGluZVRydW5jYXRpb25UeXBlIHRydW5jYXRpb25UeXBlKSB7
Ci0gICAgICAgIE5TRGljdGlvbmFyeSAqdGV4dEF0dHJpYnV0ZXMgPSBAewotICAgICAgICAgICAg
KGlkKWtDVEZvbnRBdHRyaWJ1dGVOYW1lOiBmb250LAotICAgICAgICAgICAgKGlkKWtDVEZvcmVn
cm91bmRDb2xvckF0dHJpYnV0ZU5hbWU6IGNvbG9yCi0gICAgICAgIH07Ci0gICAgICAgIFJldGFp
blB0cjxOU0F0dHJpYnV0ZWRTdHJpbmc+IGF0dHJpYnV0ZWRUZXh0ID0gYWRvcHROUyhbW05TQXR0
cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6dGV4dCBhdHRyaWJ1dGVzOnRleHRB
dHRyaWJ1dGVzXSk7Ci0gICAgICAgIFJldGFpblB0cjxDVEZyYW1lc2V0dGVyUmVmPiB0ZXh0RnJh
bWVzZXR0ZXIgPSBhZG9wdENGKENURnJhbWVzZXR0ZXJDcmVhdGVXaXRoQXR0cmlidXRlZFN0cmlu
ZygoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmKWF0dHJpYnV0ZWRUZXh0LmdldCgpKSk7Ci0KLSAgICAg
ICAgQ0ZSYW5nZSBmaXRSYW5nZTsKLSAgICAgICAgQ0dTaXplIHRleHRTaXplID0gQ1RGcmFtZXNl
dHRlclN1Z2dlc3RGcmFtZVNpemVXaXRoQ29uc3RyYWludHModGV4dEZyYW1lc2V0dGVyLmdldCgp
LCBDRlJhbmdlTWFrZSgwLCAwKSwgbnVsbHB0ciwgQ0dTaXplTWFrZShtYXhpbXVtQXZhaWxhYmxl
V2lkdGgsIENHRkxPQVRfTUFYKSwgJmZpdFJhbmdlKTsKLQotICAgICAgICBSZXRhaW5QdHI8Q0dQ
YXRoUmVmPiB0ZXh0UGF0aCA9IGFkb3B0Q0YoQ0dQYXRoQ3JlYXRlV2l0aFJlY3QoQ0dSZWN0TWFr
ZSgwLCAwLCB0ZXh0U2l6ZS53aWR0aCwgdGV4dFNpemUuaGVpZ2h0KSwgbnVsbHB0cikpOwotICAg
ICAgICBSZXRhaW5QdHI8Q1RGcmFtZVJlZj4gdGV4dEZyYW1lID0gYWRvcHRDRihDVEZyYW1lc2V0
dGVyQ3JlYXRlRnJhbWUodGV4dEZyYW1lc2V0dGVyLmdldCgpLCBmaXRSYW5nZSwgdGV4dFBhdGgu
Z2V0KCksIG51bGxwdHIpKTsKLQotICAgICAgICBDRkFycmF5UmVmIGN0TGluZXMgPSBDVEZyYW1l
R2V0TGluZXModGV4dEZyYW1lLmdldCgpKTsKLSAgICAgICAgQ0ZJbmRleCBsaW5lQ291bnQgPSBD
RkFycmF5R2V0Q291bnQoY3RMaW5lcyk7Ci0gICAgICAgIGlmICghbGluZUNvdW50KQotICAgICAg
ICAgICAgcmV0dXJuOworICAgIEFTU0VSVChmb250KTsKKyAgICBzdGF0aWMgTlNGb250ICpjdXJy
ZW50Rm9udDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udENhc2NhZGU+IGN1cnJlbnRS
ZW5kZXJlcjsKKyAgICAKKyAgICBpZiAoW2ZvbnQgaXNFcXVhbDpjdXJyZW50Rm9udF0pCisgICAg
ICAgIHJldHVybiBjdXJyZW50UmVuZGVyZXI7CisgICAgaWYgKGN1cnJlbnRGb250KQorICAgICAg
ICBDRlJlbGVhc2UoY3VycmVudEZvbnQpOworICAgIGN1cnJlbnRGb250ID0gZm9udDsKKyAgICBD
RlJldGFpbihjdXJyZW50Rm9udCk7CisgICAgY3VycmVudFJlbmRlcmVyLmdldCgpID0gRm9udENh
c2NhZGUoRm9udFBsYXRmb3JtRGF0YSh0b0NURm9udChmb250KSwgW2ZvbnQgcG9pbnRTaXplXSkp
OworICAgIHJldHVybiBjdXJyZW50UmVuZGVyZXI7Cit9CiAKLSAgICAgICAgVmVjdG9yPENHUG9p
bnQ+IG9yaWdpbnMobGluZUNvdW50KTsKLSAgICAgICAgQ1RGcmFtZUdldExpbmVPcmlnaW5zKHRl
eHRGcmFtZS5nZXQoKSwgQ0ZSYW5nZU1ha2UoMCwgMCksIG9yaWdpbnMuZGF0YSgpKTsKK3N0YXRp
YyBib29sIGNhblVzZUZhc3RSZW5kZXJlcihjb25zdCBVbmlDaGFyKiBidWZmZXIsIHVuc2lnbmVk
IGxlbmd0aCkKK3sKKyAgICB1bnNpZ25lZCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7
IGkrKykgeworICAgICAgICBVQ2hhckRpcmVjdGlvbiBkaXJlY3Rpb24gPSB1X2NoYXJEaXJlY3Rp
b24oYnVmZmVyW2ldKTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBVX1JJR0hUX1RPX0xFRlQg
fHwgZGlyZWN0aW9uID4gVV9PVEhFUl9ORVVUUkFMKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKyAgICAKK3N0YXRpYyBmbG9hdCB3aWR0aFdp
dGhGb250KE5TU3RyaW5nICpzdHJpbmcsIE5TRm9udCAqZm9udCkKK3sKKyAgICBpZiAoIWZvbnQp
CisgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgIC8vIExheSBvdXQgYW5kIHJlY29yZCB0aGUg
Zmlyc3QgKG1heGltdW1MaW5lcyAtIDEpIGxpbmVzLgotICAgICAgICBDRkluZGV4IGxpbmVJbmRl
eCA9IDA7Ci0gICAgICAgIGZvciAoOyBsaW5lSW5kZXggPCBzdGQ6Om1pbihtYXhpbXVtTGluZXMg
LSAxLCBsaW5lQ291bnQpOyArK2xpbmVJbmRleCkgewotICAgICAgICAgICAgQ1RMaW5lUmVmIGxp
bmUgPSAoQ1RMaW5lUmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoY3RMaW5lcywgbGluZUluZGV4
KTsKLSAgICAgICAgICAgIGFkZExpbmUobGluZSwgb3JpZ2lucywgbGluZUluZGV4LCBsaW5rSW1h
Z2VQYWRkaW5nLCBjdXJyZW50WSwgbWF4aW11bVVzZWRUZXh0V2lkdGgsIGxpbmVJbmRleCA9PSBs
aW5lQ291bnQgLSAxKTsKLSAgICAgICAgfQorICAgIHVuc2lnbmVkIGxlbmd0aCA9IFtzdHJpbmcg
bGVuZ3RoXTsKKyAgICBWZWN0b3I8VW5pQ2hhciwgMjA0OD4gYnVmZmVyKGxlbmd0aCk7CisgICAg
CisgICAgW3N0cmluZyBnZXRDaGFyYWN0ZXJzOmJ1ZmZlci5kYXRhKCldOworICAgIAorICAgIGlm
IChjYW5Vc2VGYXN0UmVuZGVyZXIoYnVmZmVyLmRhdGEoKSwgbGVuZ3RoKSkgeworICAgICAgICBG
b250Q2FzY2FkZSB3ZWJDb3JlRm9udChGb250UGxhdGZvcm1EYXRhKHRvQ1RGb250KGZvbnQpLCBb
Zm9udCBwb2ludFNpemVdKSk7CisgICAgICAgIFRleHRSdW4gcnVuKFN0cmluZ1ZpZXcoYnVmZmVy
LmRhdGEoKSwgbGVuZ3RoKSk7CisgICAgICAgIHJldHVybiB3ZWJDb3JlRm9udC53aWR0aChydW4p
OworICAgIH0KKyAgICAKKyAgICByZXR1cm4gW3N0cmluZyBzaXplV2l0aEF0dHJpYnV0ZXM6W05T
RGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlzOmZvbnQsIE5TRm9udEF0dHJp
YnV0ZU5hbWUsIG5pbF1dLndpZHRoOworfQorICAgIAorc3RhdGljIHZvaWQgZHJhd0F0UG9pbnQo
TlNTdHJpbmcgKnN0cmluZywgTlNQb2ludCBwb2ludCwgTlNGb250ICpmb250LCBOU0NvbG9yICp0
ZXh0Q29sb3IpCit7CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
aWYgKGxpbmVJbmRleCA9PSBsaW5lQ291bnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgLy8gV2UgaGFkIHRleHQgdGhhdCBkaWRuJ3QgZml0IGluIHRoZSBmaXJzdCAobWF4aW11bUxp
bmVzIC0gMSkgbGluZXMuCi0gICAgICAgIC8vIENvbWJpbmUgaXQgaW50byBvbmUgbGFzdCBsaW5l
LCBhbmQgdHJ1bmNhdGUgaXQuCi0gICAgICAgIENUTGluZVJlZiBmaXJzdFJlbWFpbmluZ0xpbmUg
PSAoQ1RMaW5lUmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoY3RMaW5lcywgbGluZUluZGV4KTsK
LSAgICAgICAgQ0ZJbmRleCByZW1haW5pbmdSYW5nZVN0YXJ0ID0gQ1RMaW5lR2V0U3RyaW5nUmFu
Z2UoZmlyc3RSZW1haW5pbmdMaW5lKS5sb2NhdGlvbjsKLSAgICAgICAgTlNSYW5nZSByZW1haW5p
bmdSYW5nZSA9IE5TTWFrZVJhbmdlKHJlbWFpbmluZ1JhbmdlU3RhcnQsIFthdHRyaWJ1dGVkVGV4
dCBsZW5ndGhdIC0gcmVtYWluaW5nUmFuZ2VTdGFydCk7Ci0gICAgICAgIE5TQXR0cmlidXRlZFN0
cmluZyAqcmVtYWluaW5nU3RyaW5nID0gW2F0dHJpYnV0ZWRUZXh0IGF0dHJpYnV0ZWRTdWJzdHJp
bmdGcm9tUmFuZ2U6cmVtYWluaW5nUmFuZ2VdOwotICAgICAgICBSZXRhaW5QdHI8Q1RMaW5lUmVm
PiByZW1haW5pbmdMaW5lID0gYWRvcHRDRihDVExpbmVDcmVhdGVXaXRoQXR0cmlidXRlZFN0cmlu
ZygoQ0ZBdHRyaWJ1dGVkU3RyaW5nUmVmKXJlbWFpbmluZ1N0cmluZykpOwotICAgICAgICBSZXRh
aW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBlbGxpcHNpc1N0cmluZyA9IGFkb3B0TlMoW1tOU0F0
dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRoU3RyaW5nOkAiXHUyMDI2IiBhdHRyaWJ1dGVz
OnRleHRBdHRyaWJ1dGVzXSk7Ci0gICAgICAgIFJldGFpblB0cjxDVExpbmVSZWY+IGVsbGlwc2lz
TGluZSA9IGFkb3B0Q0YoQ1RMaW5lQ3JlYXRlV2l0aEF0dHJpYnV0ZWRTdHJpbmcoKENGQXR0cmli
dXRlZFN0cmluZ1JlZillbGxpcHNpc1N0cmluZy5nZXQoKSkpOwotICAgICAgICBSZXRhaW5QdHI8
Q1RMaW5lUmVmPiB0cnVuY2F0ZWRMaW5lID0gYWRvcHRDRihDVExpbmVDcmVhdGVUcnVuY2F0ZWRM
aW5lKHJlbWFpbmluZ0xpbmUuZ2V0KCksIG1heGltdW1BdmFpbGFibGVXaWR0aCwgdHJ1bmNhdGlv
blR5cGUsIGVsbGlwc2lzTGluZS5nZXQoKSkpOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IFtzdHJp
bmcgbGVuZ3RoXTsKKyAgICBWZWN0b3I8VW5pQ2hhciwgMjA0OD4gYnVmZmVyKGxlbmd0aCk7Cisg
ICAgCisgICAgW3N0cmluZyBnZXRDaGFyYWN0ZXJzOmJ1ZmZlci5kYXRhKCldOworICAgIAorICAg
IGlmIChjYW5Vc2VGYXN0UmVuZGVyZXIoYnVmZmVyLmRhdGEoKSwgbGVuZ3RoKSkgeworICAgICAg
ICAvLyBUaGUgZm9sbG93aW5nIGlzIGEgaGFsZi1hc3NlZCBhdHRlbXB0IHRvIG1hdGNoIEFwcEtp
dCdzIHJvdW5kaW5nIHJ1bGVzIGZvciBkcmF3QXRQb2ludC4KKyAgICAgICAgLy8gSXQncyBwcm9i
YWJseSBpbmNvcnJlY3QgZm9yIGhpZ2ggRFBJLgorICAgICAgICAvLyBJZiB5b3UgY2hhbmdlIHRo
aXMsIGJlIHN1cmUgdG8gdGVzdCBhbGwgdGhlIHRleHQgZHJhd24gdGhpcyB3YXkgaW4gU2FmYXJp
LCBpbmNsdWRpbmcKKyAgICAgICAgLy8gdGhlIHN0YXR1cyBiYXIsIGJvb2ttYXJrcyBiYXIsIHRh
YiBiYXIsIGFuZCBhY3Rpdml0eSB3aW5kb3cuCisgICAgICAgIHBvaW50LnkgPSBDR0NlaWxpbmco
cG9pbnQueSk7CisgICAgICAgIAorICAgICAgICBOU0dyYXBoaWNzQ29udGV4dCAqbnNDb250ZXh0
ID0gW05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XTsKKyAgICAgICAgQ0dDb250ZXh0
UmVmIGNnQ29udGV4dCA9IHN0YXRpY19jYXN0PENHQ29udGV4dFJlZj4oW25zQ29udGV4dCBncmFw
aGljc1BvcnRdKTsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dChjZ0Nv
bnRleHQpOyAgICAKICAgICAgICAgCi0gICAgICAgIGlmICghdHJ1bmNhdGVkTGluZSkKLSAgICAg
ICAgICAgIHRydW5jYXRlZExpbmUgPSByZW1haW5pbmdMaW5lOworICAgICAgICAvLyBTYWZhcmkg
ZG9lc24ndCBmbGlwIHRoZSBOU0dyYXBoaWNzQ29udGV4dCBiZWZvcmUgY2FsbGluZyBXZWJLaXQs
IHlldCBXZWJDb3JlIHJlcXVpcmVzIGEgZmxpcHBlZCBncmFwaGljcyBjb250ZXh0LgorICAgICAg
ICBCT09MIGZsaXBwZWQgPSBbbnNDb250ZXh0IGlzRmxpcHBlZF07CisgICAgICAgIGlmICghZmxp
cHBlZCkKKyAgICAgICAgICAgIENHQ29udGV4dFNjYWxlQ1RNKGNnQ29udGV4dCwgMSwgLTEpOwor
CisgICAgICAgIEZvbnRDYXNjYWRlIHdlYkNvcmVGb250KEZvbnRQbGF0Zm9ybURhdGEodG9DVEZv
bnQoZm9udCksIFtmb250IHBvaW50U2l6ZV0pLCBBbnRpYWxpYXNlZCk7CisgICAgICAgIFRleHRS
dW4gcnVuKFN0cmluZ1ZpZXcoYnVmZmVyLmRhdGEoKSwgbGVuZ3RoKSk7CisKKyAgICAgICAgQ0dG
bG9hdCByZWQ7CisgICAgICAgIENHRmxvYXQgZ3JlZW47CisgICAgICAgIENHRmxvYXQgYmx1ZTsK
KyAgICAgICAgQ0dGbG9hdCBhbHBoYTsKKyAgICAgICAgW1t0ZXh0Q29sb3IgY29sb3JVc2luZ0Nv
bG9yU3BhY2VOYW1lOk5TRGV2aWNlUkdCQ29sb3JTcGFjZV0gZ2V0UmVkOiZyZWQgZ3JlZW46Jmdy
ZWVuIGJsdWU6JmJsdWUgYWxwaGE6JmFscGhhXTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LnNl
dEZpbGxDb2xvcihtYWtlUkdCQShyZWQgKiAyNTUsIGdyZWVuICogMjU1LCBibHVlICogMjU1LCBh
bHBoYSAqIDI1NSkpOwogICAgICAgICAKLSAgICAgICAgYWRkTGluZSh0cnVuY2F0ZWRMaW5lLmdl
dCgpLCBvcmlnaW5zLCBsaW5lSW5kZXgsIGxpbmtJbWFnZVBhZGRpbmcsIGN1cnJlbnRZLCBtYXhp
bXVtVXNlZFRleHRXaWR0aCwgdHJ1ZSk7Ci0gICAgfTsKKyAgICAgICAgd2ViQ29yZUZvbnQuZHJh
d1RleHQoZ3JhcGhpY3NDb250ZXh0LCBydW4sIEZsb2F0UG9pbnQocG9pbnQueCwgKGZsaXBwZWQg
PyBwb2ludC55IDogKC0xICogcG9pbnQueSkpKSk7CisgICAgICAgIAorICAgICAgICBpZiAoIWZs
aXBwZWQpCisgICAgICAgICAgICBDR0NvbnRleHRTY2FsZUNUTShjZ0NvbnRleHQsIDEsIC0xKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGUgZ2l2ZW4gcG9pbnQgaXMgb24gdGhlIGJhc2Vs
aW5lLgorICAgICAgICBpZiAoW1tOU1ZpZXcgZm9jdXNWaWV3XSBpc0ZsaXBwZWRdKQorICAgICAg
ICAgICAgcG9pbnQueSAtPSBbZm9udCBhc2NlbmRlcl07CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHBvaW50LnkgKz0gW2ZvbnQgZGVzY2VuZGVyXTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgW3N0cmluZyBkcmF3QXRQb2ludDpwb2ludCB3aXRoQXR0cmlidXRlczpbTlNEaWN0aW9uYXJ5
IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6Zm9udCwgTlNGb250QXR0cmlidXRlTmFtZSwg
dGV4dENvbG9yLCBOU0ZvcmVncm91bmRDb2xvckF0dHJpYnV0ZU5hbWUsIG5pbF1dOworICAgIH0K
K30KKyAgICAKK3N0YXRpYyB2b2lkIGRyYXdEb3VibGVkQXRQb2ludChOU1N0cmluZyAqc3RyaW5n
LCBOU1BvaW50IHRleHRQb2ludCwgTlNDb2xvciAqdG9wQ29sb3IsIE5TQ29sb3IgKmJvdHRvbUNv
bG9yLCBOU0ZvbnQgKmZvbnQpCit7CisgICAgICAgIC8vIHR1cm4gb2ZmIGZvbnQgc21vb3RoaW5n
IHNvIHRyYW5zbHVjZW50IHRleHQgZHJhd3MgY29ycmVjdGx5IChSYWRhciAzMTE4NDU1KQorICAg
ICAgICBkcmF3QXRQb2ludChzdHJpbmcsIHRleHRQb2ludCwgZm9udCwgYm90dG9tQ29sb3IpOwor
ICAgICAgICAKKyAgICAgICAgdGV4dFBvaW50LnkgKz0gMTsKKyAgICAgICAgZHJhd0F0UG9pbnQo
c3RyaW5nLCB0ZXh0UG9pbnQsIGZvbnQsIHRvcENvbG9yKTsKK30KIAotICAgIGlmICh0aXRsZSkK
LSAgICAgICAgYnVpbGRMaW5lcyh0aXRsZSwgdGl0bGVDb2xvciwgdGl0bGVGb250LCBsaW5rSW1h
Z2VUaXRsZU1heGltdW1MaW5lQ291bnQsIGtDVExpbmVUcnVuY2F0aW9uRW5kKTsKK0RyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEVsZW1lbnQmLCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgVGV4dEluZGljYXRvckRhdGEmLCBGb250UmVuZGVyaW5nTW9kZSwgZmxvYXQp
Cit7CisgICAgTlNTdHJpbmcgKmxhYmVsID0gbnNTdHJpbmdOaWxJZkVtcHR5KHRpdGxlKTsKKyAg
ICBOU1VSTCAqY29jb2FVUkwgPSB1cmw7CisgICAgTlNTdHJpbmcgKnVybFN0cmluZyA9IFtjb2Nv
YVVSTCBhYnNvbHV0ZVN0cmluZ107CiAKLSAgICBpZiAodGl0bGUgJiYgZG9tYWluKQotICAgICAg
ICBjdXJyZW50WSArPSBsaW5rSW1hZ2VEb21haW5CYXNlbGluZVRvVGl0bGVCYXNlbGluZSAtIChk
b21haW5Gb250LmFzY2VuZGVyIC0gZG9tYWluRm9udC5kZXNjZW5kZXIpOworICAgIEJPT0wgZHJh
d1VSTFN0cmluZyA9IFlFUzsKKyAgICBCT09MIGNsaXBVUkxTdHJpbmcgPSBOTzsKKyAgICBCT09M
IGNsaXBMYWJlbFN0cmluZyA9IE5POwogCi0gICAgaWYgKGRvbWFpbikKLSAgICAgICAgYnVpbGRM
aW5lcyhkb21haW4sIGRvbWFpbkNvbG9yLCBkb21haW5Gb250LCAxLCBrQ1RMaW5lVHJ1bmNhdGlv
bk1pZGRsZSk7CisgICAgaWYgKCFsYWJlbCkgeworICAgICAgICBkcmF3VVJMU3RyaW5nID0gTk87
CisgICAgICAgIGxhYmVsID0gdXJsU3RyaW5nOworICAgIH0KIAotICAgIGN1cnJlbnRZICs9IGxp
bmtJbWFnZVBhZGRpbmc7CisgICAgTlNGb250ICpsYWJlbEZvbnQgPSBbW05TRm9udE1hbmFnZXIg
c2hhcmVkRm9udE1hbmFnZXJdIGNvbnZlcnRGb250OltOU0ZvbnQgc3lzdGVtRm9udE9mU2l6ZTpE
cmFnTGlua0xhYmVsRm9udHNpemVdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRvSGF2ZVRyYWl0Ok5TQm9sZEZvbnRNYXNrXTsKKyAg
ICBOU0ZvbnQgKnVybEZvbnQgPSBbTlNGb250IHN5c3RlbUZvbnRPZlNpemU6RHJhZ0xpbmtVcmxG
b250U2l6ZV07CiAKLSAgICBib3VuZGluZ1JlY3QgPSBGbG9hdFJlY3QoMCwgMCwgbWF4aW11bVVz
ZWRUZXh0V2lkdGggKyBsaW5rSW1hZ2VQYWRkaW5nICogMiwgY3VycmVudFkpOwotfQorICAgIEFT
U0VSVChsYWJlbEZvbnQpOworICAgIEFTU0VSVCh1cmxGb250KTsKIAotdm9pZCBMaW5rSW1hZ2VM
YXlvdXQ6OmFkZExpbmUoQ1RMaW5lUmVmIGN0TGluZSwgVmVjdG9yPENHUG9pbnQ+JiBvcmlnaW5z
LCBDRkluZGV4IGxpbmVJbmRleCwgQ0dGbG9hdCB4LCBDR0Zsb2F0JiB5LCBDR0Zsb2F0JiBtYXhp
bXVtVXNlZFRleHRXaWR0aCwgYm9vbCBpc0xhc3RMaW5lKQotewotICAgIENHUmVjdCBsaW5lQm91
bmRzID0gQ1RMaW5lR2V0Qm91bmRzV2l0aE9wdGlvbnMoY3RMaW5lLCAwKTsKLSAgICBDR0Zsb2F0
IHRyYWlsaW5nV2hpdGVzcGFjZVdpZHRoID0gQ1RMaW5lR2V0VHJhaWxpbmdXaGl0ZXNwYWNlV2lk
dGgoY3RMaW5lKTsKLSAgICBDR0Zsb2F0IGxpbmVXaWR0aElnbm9yaW5nVHJhaWxpbmdXaGl0ZXNw
YWNlID0gbGluZUJvdW5kcy5zaXplLndpZHRoIC0gdHJhaWxpbmdXaGl0ZXNwYWNlV2lkdGg7Ci0g
ICAgbWF4aW11bVVzZWRUZXh0V2lkdGggPSBzdGQ6Om1heChtYXhpbXVtVXNlZFRleHRXaWR0aCwg
bGluZVdpZHRoSWdub3JpbmdUcmFpbGluZ1doaXRlc3BhY2UpOworICAgIE5TU2l6ZSBsYWJlbFNp
emU7CisgICAgbGFiZWxTaXplLndpZHRoID0gd2lkdGhXaXRoRm9udChsYWJlbCwgbGFiZWxGb250
KTsKKyAgICBsYWJlbFNpemUuaGVpZ2h0ID0gW2xhYmVsRm9udCBhc2NlbmRlcl0gLSBbbGFiZWxG
b250IGRlc2NlbmRlcl07CisgICAgaWYgKGxhYmVsU2l6ZS53aWR0aCA+IE1heERyYWdMYWJlbFdp
ZHRoKXsKKyAgICAgICAgbGFiZWxTaXplLndpZHRoID0gTWF4RHJhZ0xhYmVsV2lkdGg7CisgICAg
ICAgIGNsaXBMYWJlbFN0cmluZyA9IFlFUzsKKyAgICB9CiAKLSAgICBpZiAobGluZUluZGV4KQot
ICAgICAgICB5ICs9IG9yaWdpbnNbbGluZUluZGV4IC0gMV0ueSAtIG9yaWdpbnNbbGluZUluZGV4
XS55OworICAgIE5TU2l6ZSBpbWFnZVNpemU7CisgICAgaW1hZ2VTaXplLndpZHRoID0gbGFiZWxT
aXplLndpZHRoICsgRHJhZ0xhYmVsQm9yZGVyWCAqIDI7CisgICAgaW1hZ2VTaXplLmhlaWdodCA9
IGxhYmVsU2l6ZS5oZWlnaHQgKyBEcmFnTGFiZWxCb3JkZXJZICogMjsKKyAgICBpZiAoZHJhd1VS
TFN0cmluZykgeworICAgICAgICBOU1NpemUgdXJsU3RyaW5nU2l6ZTsKKyAgICAgICAgdXJsU3Ry
aW5nU2l6ZS53aWR0aCA9IHdpZHRoV2l0aEZvbnQodXJsU3RyaW5nLCB1cmxGb250KTsKKyAgICAg
ICAgdXJsU3RyaW5nU2l6ZS5oZWlnaHQgPSBbdXJsRm9udCBhc2NlbmRlcl0gLSBbdXJsRm9udCBk
ZXNjZW5kZXJdOworICAgICAgICBpbWFnZVNpemUuaGVpZ2h0ICs9IHVybFN0cmluZ1NpemUuaGVp
Z2h0OworICAgICAgICBpZiAodXJsU3RyaW5nU2l6ZS53aWR0aCA+IE1heERyYWdMYWJlbFdpZHRo
KSB7CisgICAgICAgICAgICBpbWFnZVNpemUud2lkdGggPSBzdGQ6Om1heChNYXhEcmFnTGFiZWxX
aWR0aCArIERyYWdMYWJlbEJvcmRlclkgKiAyLCBNaW5EcmFnTGFiZWxXaWR0aEJlZm9yZUNsaXAp
OworICAgICAgICAgICAgY2xpcFVSTFN0cmluZyA9IFlFUzsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBpbWFnZVNpemUud2lkdGggPSBzdGQ6Om1heChsYWJlbFNpemUud2lkdGggKyBEcmFn
TGFiZWxCb3JkZXJYICogMiwgdXJsU3RyaW5nU2l6ZS53aWR0aCArIERyYWdMYWJlbEJvcmRlclgg
KiAyKTsKKyAgICB9CisgICAgTlNJbWFnZSAqZHJhZ0ltYWdlID0gW1tbTlNJbWFnZSBhbGxvY10g
aW5pdFdpdGhTaXplOiBpbWFnZVNpemVdIGF1dG9yZWxlYXNlXTsKKyAgICBbZHJhZ0ltYWdlIGxv
Y2tGb2N1c107CiAKLSAgICBMaW5rSW1hZ2VMYXlvdXQ6OkxhYmVsTGluZSBsaW5lOwotICAgIGxp
bmUubGluZSA9IGN0TGluZTsKLSAgICBsaW5lLm9yaWdpbiA9IEZsb2F0UG9pbnQoeCwgeSk7Ci0g
ICAgbGluZXMuYXBwZW5kKGxpbmUpOworICAgIFtbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VSZWQ6
IDAuN2YgZ3JlZW46IDAuN2YgYmx1ZTogMC43ZiBhbHBoYTogMC44Zl0gc2V0XTsKIAotICAgIGlm
IChpc0xhc3RMaW5lKQotICAgICAgICB5ICs9IGxpbmVCb3VuZHMuc2l6ZS5oZWlnaHQ7Ci19Cisg
ICAgLy8gRHJhZyBhIHJlY3RhbmdsZSB3aXRoIHJvdW5kZWQgY29ybmVycworICAgIE5TQmV6aWVy
UGF0aCAqcGF0aCA9IFtOU0JlemllclBhdGggYmV6aWVyUGF0aF07CisgICAgW3BhdGggYXBwZW5k
QmV6aWVyUGF0aFdpdGhPdmFsSW5SZWN0OiBOU01ha2VSZWN0KDAsIDAsIERyYWdMYWJlbFJhZGl1
cyAqIDIsIERyYWdMYWJlbFJhZGl1cyAqIDIpXTsKKyAgICBbcGF0aCBhcHBlbmRCZXppZXJQYXRo
V2l0aE92YWxJblJlY3Q6IE5TTWFrZVJlY3QoMCwgaW1hZ2VTaXplLmhlaWdodCAtIERyYWdMYWJl
bFJhZGl1cyAqIDIsIERyYWdMYWJlbFJhZGl1cyAqIDIsIERyYWdMYWJlbFJhZGl1cyAqIDIpXTsK
KyAgICBbcGF0aCBhcHBlbmRCZXppZXJQYXRoV2l0aE92YWxJblJlY3Q6IE5TTWFrZVJlY3QoaW1h
Z2VTaXplLndpZHRoIC0gRHJhZ0xhYmVsUmFkaXVzICogMiwgaW1hZ2VTaXplLmhlaWdodCAtIERy
YWdMYWJlbFJhZGl1cyAqIDIsIERyYWdMYWJlbFJhZGl1cyAqIDIsIERyYWdMYWJlbFJhZGl1cyAq
IDIpXTsKKyAgICBbcGF0aCBhcHBlbmRCZXppZXJQYXRoV2l0aE92YWxJblJlY3Q6IE5TTWFrZVJl
Y3QoaW1hZ2VTaXplLndpZHRoIC0gRHJhZ0xhYmVsUmFkaXVzICogMiwgMCwgRHJhZ0xhYmVsUmFk
aXVzICogMiwgRHJhZ0xhYmVsUmFkaXVzICogMildOwogCi1EcmFnSW1hZ2VSZWYgY3JlYXRlRHJh
Z0ltYWdlRm9yTGluayhFbGVtZW50JiwgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFRl
eHRJbmRpY2F0b3JEYXRhJiwgRm9udFJlbmRlcmluZ01vZGUsIGZsb2F0KQotewotICAgIExpbmtJ
bWFnZUxheW91dCBsYXlvdXQodXJsLCB0aXRsZSk7CisgICAgW3BhdGggYXBwZW5kQmV6aWVyUGF0
aFdpdGhSZWN0OiBOU01ha2VSZWN0KERyYWdMYWJlbFJhZGl1cywgMCwgaW1hZ2VTaXplLndpZHRo
IC0gRHJhZ0xhYmVsUmFkaXVzICogMiwgaW1hZ2VTaXplLmhlaWdodCldOworICAgIFtwYXRoIGFw
cGVuZEJlemllclBhdGhXaXRoUmVjdDogTlNNYWtlUmVjdCgwLCBEcmFnTGFiZWxSYWRpdXMsIERy
YWdMYWJlbFJhZGl1cyArIDEwLCBpbWFnZVNpemUuaGVpZ2h0IC0gMiAqIERyYWdMYWJlbFJhZGl1
cyldOworICAgIFtwYXRoIGFwcGVuZEJlemllclBhdGhXaXRoUmVjdDogTlNNYWtlUmVjdChpbWFn
ZVNpemUud2lkdGggLSBEcmFnTGFiZWxSYWRpdXMgLSAyMCwgRHJhZ0xhYmVsUmFkaXVzLCBEcmFn
TGFiZWxSYWRpdXMgKyAyMCwgaW1hZ2VTaXplLmhlaWdodCAtIDIgKiBEcmFnTGFiZWxSYWRpdXMp
XTsKKyAgICBbcGF0aCBmaWxsXTsKIAotICAgIFJldGFpblB0cjxOU0ltYWdlPiBkcmFnSW1hZ2Ug
PSBhZG9wdE5TKFtbTlNJbWFnZSBhbGxvY10gaW5pdFdpdGhTaXplOmxheW91dC5ib3VuZGluZ1Jl
Y3Quc2l6ZSgpXSk7Ci0gICAgW2RyYWdJbWFnZSBsb2NrRm9jdXNdOworICAgIE5TQ29sb3IgKnRv
cENvbG9yID0gW05TQ29sb3IgY29sb3JXaXRoRGV2aWNlV2hpdGU6MC4wZiBhbHBoYTowLjc1Zl07
CisgICAgTlNDb2xvciAqYm90dG9tQ29sb3IgPSBbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VXaGl0
ZToxLjBmIGFscGhhOjAuNWZdOworICAgIGlmIChkcmF3VVJMU3RyaW5nICYmIHVybEZvbnQpIHsK
KyAgICAgICAgaWYgKGNsaXBVUkxTdHJpbmcpCisgICAgICAgICAgICB1cmxTdHJpbmcgPSBTdHJp
bmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHVybFN0cmluZywgaW1hZ2VTaXplLndpZHRoIC0g
KERyYWdMYWJlbEJvcmRlclggKiAyKSwgZm9udEZyb21OU0ZvbnQodXJsRm9udCkpOwogCi0gICAg
R3JhcGhpY3NDb250ZXh0IGNvbnRleHQoKENHQ29udGV4dFJlZilbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdLmdyYXBoaWNzUG9ydCk7Ci0gICAgY29udGV4dC5maWxsUm91bmRlZFJl
Y3QoRmxvYXRSb3VuZGVkUmVjdChsYXlvdXQuYm91bmRpbmdSZWN0LCBGbG9hdFJvdW5kZWRSZWN0
OjpSYWRpaShsaW5rSW1hZ2VDb3JuZXJSYWRpdXMpKSwgQ29sb3I6OndoaXRlKTsKKyAgICAgICBk
cmF3RG91YmxlZEF0UG9pbnQodXJsU3RyaW5nLCBOU01ha2VQb2ludChEcmFnTGFiZWxCb3JkZXJY
LCBEcmFnTGFiZWxCb3JkZXJZIC0gW3VybEZvbnQgZGVzY2VuZGVyXSksIHRvcENvbG9yLCBib3R0
b21Db2xvciwgdXJsRm9udCk7CisgICAgfQogCi0gICAgZm9yIChjb25zdCBhdXRvJiBsaW5lIDog
bGF5b3V0LmxpbmVzKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc2F2ZXIo
Y29udGV4dCk7Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKGxpbmUub3JpZ2luLngoKSwgbGF5
b3V0LmJvdW5kaW5nUmVjdC5oZWlnaHQoKSAtIGxpbmUub3JpZ2luLnkoKSAtIGxpbmtJbWFnZVBh
ZGRpbmcpOwotICAgICAgICBDR0NvbnRleHRTZXRUZXh0UG9zaXRpb24oY29udGV4dC5wbGF0Zm9y
bUNvbnRleHQoKSwgMCwgMCk7Ci0gICAgICAgIENUTGluZURyYXcobGluZS5saW5lLmdldCgpLCBj
b250ZXh0LnBsYXRmb3JtQ29udGV4dCgpKTsKKyAgICBpZiAobGFiZWxGb250KSB7CisgICAgICAg
IGlmIChjbGlwTGFiZWxTdHJpbmcpCisgICAgICAgICAgICBsYWJlbCA9IFN0cmluZ1RydW5jYXRv
cjo6cmlnaHRUcnVuY2F0ZShsYWJlbCwgaW1hZ2VTaXplLndpZHRoIC0gKERyYWdMYWJlbEJvcmRl
clggKiAyKSwgZm9udEZyb21OU0ZvbnQobGFiZWxGb250KSk7CisgICAgICAgIGRyYXdEb3VibGVk
QXRQb2ludChsYWJlbCwgTlNNYWtlUG9pbnQoRHJhZ0xhYmVsQm9yZGVyWCwgaW1hZ2VTaXplLmhl
aWdodCAtIExhYmVsQm9yZGVyWU9mZnNldCAtIFtsYWJlbEZvbnQgcG9pbnRTaXplXSksIHRvcENv
bG9yLCBib3R0b21Db2xvciwgbGFiZWxGb250KTsKICAgICB9CiAKICAgICBbZHJhZ0ltYWdlIHVu
bG9ja0ZvY3VzXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>