From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.bugs Subject: bug#36315: 27.0.50; SVG transparency handling is inaccurate Date: Mon, 24 Jun 2019 16:56:45 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/mixed; boundary="Multipart_Mon_Jun_24_16:56:45_2019-1" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="252911"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?UTF-8?Q?Goj=C5=8D?=) APEL/10.8 EasyPG/1.0.0 Emacs/25.3 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Cc: 36315@debbugs.gnu.org To: Pip Cet Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 24 09:57:19 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hfJqo-0013by-Ou for geb-bug-gnu-emacs@m.gmane.org; Mon, 24 Jun 2019 09:57:19 +0200 Original-Received: from localhost ([::1]:48622 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJqn-0006ug-Qp for geb-bug-gnu-emacs@m.gmane.org; Mon, 24 Jun 2019 03:57:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60675) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfJqi-0006uM-C2 for bug-gnu-emacs@gnu.org; Mon, 24 Jun 2019 03:57:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfJqc-0005Q7-MH for bug-gnu-emacs@gnu.org; Mon, 24 Jun 2019 03:57:08 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:41954) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hfJqX-0005Le-NU for bug-gnu-emacs@gnu.org; Mon, 24 Jun 2019 03:57:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hfJqX-0007IJ-LX for bug-gnu-emacs@gnu.org; Mon, 24 Jun 2019 03:57:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: YAMAMOTO Mitsuharu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 24 Jun 2019 07:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36315 X-GNU-PR-Package: emacs Original-Received: via spool by 36315-submit@debbugs.gnu.org id=B36315.156136301028020 (code B ref 36315); Mon, 24 Jun 2019 07:57:01 +0000 Original-Received: (at 36315) by debbugs.gnu.org; 24 Jun 2019 07:56:50 +0000 Original-Received: from localhost ([127.0.0.1]:55498 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hfJqM-0007Hs-2n for submit@debbugs.gnu.org; Mon, 24 Jun 2019 03:56:50 -0400 Original-Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:53839) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hfJqH-0007Hh-NV for 36315@debbugs.gnu.org; Mon, 24 Jun 2019 03:56:48 -0400 Original-Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id D6610F08E7; Mon, 24 Jun 2019 16:56:45 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:161198 Archived-At: --Multipart_Mon_Jun_24_16:56:45_2019-1 Content-Type: text/plain; charset=US-ASCII On Fri, 21 Jun 2019 05:26:53 +0900, Pip Cet wrote: > > [1 ] > Evaluate the following in emacs -Q: > > (require 'svg) > > (defun make-image (color) > (let ((svg (svg-create 100 100))) > (svg-rectangle svg 0 0 100 100 :fill color) > (svg-image svg))) > > (set-frame-parameter (window-frame) 'background-color "black") > > (insert (propertize " " 'display (make-image "#f00000"))) > > The expected result is a rectangle (on black background) of color > #f00000. The actual result is a rectangle of color #ef0000. For black > backgrounds, white is no longer representable. > > This is related to bug #36304, but much easier to fix. > > Patch attached. An alternative way would be to use rsvg_handle_render_cairo, which is recommended by librsvg, and let it blend with the background color. Patch attached. Note that this does not require --with-cairo. Raising the required version of librsvg to 2.14 is not a problem, as we are already using rsvg_handle_get_dimensions that requires that version. Is Windows librsvg DLL compiled with libcairo? YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp --Multipart_Mon_Jun_24_16:56:45_2019-1 Content-Type: application/octet-stream; type=patch; name="svg-cairo.diff" Content-Disposition: attachment; filename="svg-cairo.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAwNTA3ZjU4MDU0 YS4uNGZlOTcwMGIwM2UgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUu YWMKQEAgLTI2MDMsNyArMjYwMyw3IEBAIEFDX0RFRlVOCiBIQVZFX1JTVkc9bm8KIGlmIHRlc3Qg IiR7SEFWRV9YMTF9IiA9ICJ5ZXMiIHx8IHRlc3QgIiR7SEFWRV9OU30iID0gInllcyIgfHwgdGVz dCAiJHtvcHN5c30iID0gIm1pbmd3MzIiOyB0aGVuCiAgIGlmIHRlc3QgIiR7d2l0aF9yc3ZnfSIg IT0gIm5vIjsgdGhlbgotICAgIFJTVkdfUkVRVUlSRUQ9Mi4xMS4wCisgICAgUlNWR19SRVFVSVJF RD0yLjE0LjAKICAgICBSU1ZHX01PRFVMRT0ibGlicnN2Zy0yLjAgPj0gJFJTVkdfUkVRVUlSRUQi CiAKICAgICBFTUFDU19DSEVDS19NT0RVTEVTKFtSU1ZHXSwgWyRSU1ZHX01PRFVMRV0pCmRpZmYg LS1naXQgYS9zcmMvaW1hZ2UuYyBiL3NyYy9pbWFnZS5jCmluZGV4IDdiNjQ4YzQ2YWU5Li5mOTM4 OThhZWRkMCAxMDA2NDQKLS0tIGEvc3JjL2ltYWdlLmMKKysrIGIvc3JjL2ltYWdlLmMKQEAgLTkz NzksMTcgKzkzNzksMTcgQEAgREVGX0RMTF9GTiAodm9pZCwgcnN2Z19oYW5kbGVfZ2V0X2RpbWVu c2lvbnMsCiBERUZfRExMX0ZOIChnYm9vbGVhbiwgcnN2Z19oYW5kbGVfd3JpdGUsCiAJICAgIChS c3ZnSGFuZGxlICosIGNvbnN0IGd1Y2hhciAqLCBnc2l6ZSwgR0Vycm9yICoqKSk7CiBERUZfRExM X0ZOIChnYm9vbGVhbiwgcnN2Z19oYW5kbGVfY2xvc2UsIChSc3ZnSGFuZGxlICosIEdFcnJvciAq KikpOwotREVGX0RMTF9GTiAoR2RrUGl4YnVmICosIHJzdmdfaGFuZGxlX2dldF9waXhidWYsIChS c3ZnSGFuZGxlICopKTsKIERFRl9ETExfRk4gKHZvaWQsIHJzdmdfaGFuZGxlX3NldF9iYXNlX3Vy aSwgKFJzdmdIYW5kbGUgKiwgY29uc3QgY2hhciAqKSk7CitERUZfRExMX0ZOIChnYm9vbGVhbiwg cnN2Z19oYW5kbGVfcmVuZGVyX2NhaXJvLCAoUnN2Z0hhbmRsZSAqLCBjYWlyb190ICopKTsKIAot REVGX0RMTF9GTiAoaW50LCBnZGtfcGl4YnVmX2dldF93aWR0aCwgKGNvbnN0IEdka1BpeGJ1ZiAq KSk7Ci1ERUZfRExMX0ZOIChpbnQsIGdka19waXhidWZfZ2V0X2hlaWdodCwgKGNvbnN0IEdka1Bp eGJ1ZiAqKSk7Ci1ERUZfRExMX0ZOIChndWNoYXIgKiwgZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzLCAo Y29uc3QgR2RrUGl4YnVmICopKTsKLURFRl9ETExfRk4gKGludCwgZ2RrX3BpeGJ1Zl9nZXRfcm93 c3RyaWRlLCAoY29uc3QgR2RrUGl4YnVmICopKTsKLURFRl9ETExfRk4gKEdka0NvbG9yc3BhY2Us IGdka19waXhidWZfZ2V0X2NvbG9yc3BhY2UsIChjb25zdCBHZGtQaXhidWYgKikpOwotREVGX0RM TF9GTiAoaW50LCBnZGtfcGl4YnVmX2dldF9uX2NoYW5uZWxzLCAoY29uc3QgR2RrUGl4YnVmICop KTsKLURFRl9ETExfRk4gKGdib29sZWFuLCBnZGtfcGl4YnVmX2dldF9oYXNfYWxwaGEsIChjb25z dCBHZGtQaXhidWYgKikpOwotREVGX0RMTF9GTiAoaW50LCBnZGtfcGl4YnVmX2dldF9iaXRzX3Bl cl9zYW1wbGUsIChjb25zdCBHZGtQaXhidWYgKikpOworREVGX0RMTF9GTiAoY2Fpcm9fc3VyZmFj ZV90ICosIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlLAorCSAgICAoY2Fpcm9fZm9ybWF0X3Qs IGludCwgaW50KSk7CitERUZfRExMX0ZOIChjYWlyb190ICosIGNhaXJvX2NyZWF0ZSwgKGNhaXJv X3N1cmZhY2VfdCAqKSk7CitERUZfRExMX0ZOICh2b2lkLCBjYWlyb19zZXRfc291cmNlX3JnYiwg KGNhaXJvX3QgKiwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkpOworREVGX0RMTF9GTiAodm9pZCwg Y2Fpcm9fcGFpbnQsIChjYWlyb190ICopKTsKK0RFRl9ETExfRk4gKHZvaWQsIGNhaXJvX2Rlc3Ry b3ksIChjYWlyb190ICopKTsKK0RFRl9ETExfRk4gKHVuc2lnbmVkIGNoYXIgKiwgY2Fpcm9faW1h Z2Vfc3VyZmFjZV9nZXRfZGF0YSwgKGNhaXJvX3N1cmZhY2VfdCAqKSk7CitERUZfRExMX0ZOIChp bnQsIGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZSwgKGNhaXJvX3N1cmZhY2VfdCAqKSk7 CiAKICMgIGlmICEgR0xJQl9DSEVDS19WRVJTSU9OICgyLCAzNiwgMCkKIERFRl9ETExfRk4gKHZv aWQsIGdfdHlwZV9pbml0LCAodm9pZCkpOwpAQCAtOTQwMCwxNCArOTQwMCwxNCBAQCBERUZfRExM X0ZOICh2b2lkLCBnX2NsZWFyX2Vycm9yLCAoR0Vycm9yICoqKSk7CiBzdGF0aWMgYm9vbAogaW5p dF9zdmdfZnVuY3Rpb25zICh2b2lkKQogewotICBITU9EVUxFIGxpYnJhcnksIGdka2xpYiA9IE5V TEwsIGdsaWIgPSBOVUxMLCBnb2JqZWN0ID0gTlVMTDsKKyAgSE1PRFVMRSBsaWJyYXJ5LCBjYWly byA9IE5VTEwsIGdsaWIgPSBOVUxMLCBnb2JqZWN0ID0gTlVMTDsKIAotICBpZiAoIShnbGliID0g dzMyX2RlbGF5ZWRfbG9hZCAoUWdsaWIpKQorICBpZiAoIShjYWlybyA9IHczMl9kZWxheWVkX2xv YWQgKFFjYWlybykpCisgICAgICB8fCAhKGdsaWIgPSB3MzJfZGVsYXllZF9sb2FkIChRZ2xpYikp CiAgICAgICB8fCAhKGdvYmplY3QgPSB3MzJfZGVsYXllZF9sb2FkIChRZ29iamVjdCkpCi0gICAg ICB8fCAhKGdka2xpYiA9IHczMl9kZWxheWVkX2xvYWQgKFFnZGtfcGl4YnVmKSkKICAgICAgIHx8 ICEobGlicmFyeSA9IHczMl9kZWxheWVkX2xvYWQgKFFzdmcpKSkKICAgICB7Ci0gICAgICBpZiAo Z2RrbGliKSAgRnJlZUxpYnJhcnkgKGdka2xpYik7CisgICAgICBpZiAoY2Fpcm8pICAgRnJlZUxp YnJhcnkgKGNhaXJvKTsKICAgICAgIGlmIChnb2JqZWN0KSBGcmVlTGlicmFyeSAoZ29iamVjdCk7 CiAgICAgICBpZiAoZ2xpYikgICAgRnJlZUxpYnJhcnkgKGdsaWIpOwogICAgICAgcmV0dXJuIDA7 CkBAIC05NDE3LDE3ICs5NDE3LDE2IEBAIGluaXRfc3ZnX2Z1bmN0aW9ucyAodm9pZCkKICAgTE9B RF9ETExfRk4gKGxpYnJhcnksIHJzdmdfaGFuZGxlX2dldF9kaW1lbnNpb25zKTsKICAgTE9BRF9E TExfRk4gKGxpYnJhcnksIHJzdmdfaGFuZGxlX3dyaXRlKTsKICAgTE9BRF9ETExfRk4gKGxpYnJh cnksIHJzdmdfaGFuZGxlX2Nsb3NlKTsKLSAgTE9BRF9ETExfRk4gKGxpYnJhcnksIHJzdmdfaGFu ZGxlX2dldF9waXhidWYpOwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgcnN2Z19oYW5kbGVfc2V0 X2Jhc2VfdXJpKTsKKyAgTE9BRF9ETExfRk4gKGxpYnJhcnksIHJzdmdfaGFuZGxlX3JlbmRlcl9j YWlybyk7CiAKLSAgTE9BRF9ETExfRk4gKGdka2xpYiwgZ2RrX3BpeGJ1Zl9nZXRfd2lkdGgpOwot ICBMT0FEX0RMTF9GTiAoZ2RrbGliLCBnZGtfcGl4YnVmX2dldF9oZWlnaHQpOwotICBMT0FEX0RM TF9GTiAoZ2RrbGliLCBnZGtfcGl4YnVmX2dldF9waXhlbHMpOwotICBMT0FEX0RMTF9GTiAoZ2Rr bGliLCBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUpOwotICBMT0FEX0RMTF9GTiAoZ2RrbGliLCBn ZGtfcGl4YnVmX2dldF9jb2xvcnNwYWNlKTsKLSAgTE9BRF9ETExfRk4gKGdka2xpYiwgZ2RrX3Bp eGJ1Zl9nZXRfbl9jaGFubmVscyk7Ci0gIExPQURfRExMX0ZOIChnZGtsaWIsIGdka19waXhidWZf Z2V0X2hhc19hbHBoYSk7Ci0gIExPQURfRExMX0ZOIChnZGtsaWIsIGdka19waXhidWZfZ2V0X2Jp dHNfcGVyX3NhbXBsZSk7CisgIExPQURfRExMX0ZOIChjYWlybywgY2Fpcm9faW1hZ2Vfc3VyZmFj ZV9jcmVhdGUpOworICBMT0FEX0RMTF9GTiAoY2Fpcm8sIGNhaXJvX2NyZWF0ZSk7CisgIExPQURf RExMX0ZOIChjYWlybywgY2Fpcm9fc2V0X3NvdXJjZV9yZ2IpOworICBMT0FEX0RMTF9GTiAoY2Fp cm8sIGNhaXJvX3BhaW50KTsKKyAgTE9BRF9ETExfRk4gKGNhaXJvLCBjYWlyb19kZXN0cm95KTsK KyAgTE9BRF9ETExfRk4gKGNhaXJvLCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhKTsKKyAg TE9BRF9ETExfRk4gKGNhaXJvLCBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJpZGUpOwogCiAj ICBpZiAhIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgMzYsIDApCiAgIExPQURfRExMX0ZOIChnb2Jq ZWN0LCBnX3R5cGVfaW5pdCk7CkBAIC05NDQxLDMyICs5NDQwLDMwIEBAIGluaXRfc3ZnX2Z1bmN0 aW9ucyAodm9pZCkKIC8qIFRoZSBmb2xsb3dpbmcgYWxpYXNlcyBmb3IgbGlicmFyeSBmdW5jdGlv bnMgYWxsb3cgZHluYW1pYyBsb2FkaW5nCiAgICB0byBiZSB1c2VkIG9uIHNvbWUgcGxhdGZvcm1z LiAgKi8KIAotIyAgdW5kZWYgZ2RrX3BpeGJ1Zl9nZXRfYml0c19wZXJfc2FtcGxlCi0jICB1bmRl ZiBnZGtfcGl4YnVmX2dldF9jb2xvcnNwYWNlCi0jICB1bmRlZiBnZGtfcGl4YnVmX2dldF9oYXNf YWxwaGEKLSMgIHVuZGVmIGdka19waXhidWZfZ2V0X2hlaWdodAotIyAgdW5kZWYgZ2RrX3BpeGJ1 Zl9nZXRfbl9jaGFubmVscwotIyAgdW5kZWYgZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzCi0jICB1bmRl ZiBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUKLSMgIHVuZGVmIGdka19waXhidWZfZ2V0X3dpZHRo CisjICB1bmRlZiBjYWlyb19jcmVhdGUKKyMgIHVuZGVmIGNhaXJvX2Rlc3Ryb3kKKyMgIHVuZGVm IGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlCisjICB1bmRlZiBjYWlyb19pbWFnZV9zdXJmYWNl X2dldF9kYXRhCisjICB1bmRlZiBjYWlyb19pbWFnZV9zdXJmYWNlX2dldF9zdHJpZGUKKyMgIHVu ZGVmIGNhaXJvX3BhaW50CisjICB1bmRlZiBjYWlyb19zZXRfc291cmNlX3JnYgogIyAgdW5kZWYg Z19jbGVhcl9lcnJvcgogIyAgdW5kZWYgZ19vYmplY3RfdW5yZWYKICMgIHVuZGVmIGdfdHlwZV9p bml0CiAjICB1bmRlZiByc3ZnX2hhbmRsZV9jbG9zZQogIyAgdW5kZWYgcnN2Z19oYW5kbGVfZ2V0 X2RpbWVuc2lvbnMKLSMgIHVuZGVmIHJzdmdfaGFuZGxlX2dldF9waXhidWYKICMgIHVuZGVmIHJz dmdfaGFuZGxlX25ldworIyAgdW5kZWYgcnN2Z19oYW5kbGVfcmVuZGVyX2NhaXJvCiAjICB1bmRl ZiByc3ZnX2hhbmRsZV9zZXRfYmFzZV91cmkKICMgIHVuZGVmIHJzdmdfaGFuZGxlX3dyaXRlCiAK LSMgIGRlZmluZSBnZGtfcGl4YnVmX2dldF9iaXRzX3Blcl9zYW1wbGUgZm5fZ2RrX3BpeGJ1Zl9n ZXRfYml0c19wZXJfc2FtcGxlCi0jICBkZWZpbmUgZ2RrX3BpeGJ1Zl9nZXRfY29sb3JzcGFjZSBm bl9nZGtfcGl4YnVmX2dldF9jb2xvcnNwYWNlCi0jICBkZWZpbmUgZ2RrX3BpeGJ1Zl9nZXRfaGFz X2FscGhhIGZuX2dka19waXhidWZfZ2V0X2hhc19hbHBoYQotIyAgZGVmaW5lIGdka19waXhidWZf Z2V0X2hlaWdodCBmbl9nZGtfcGl4YnVmX2dldF9oZWlnaHQKLSMgIGRlZmluZSBnZGtfcGl4YnVm X2dldF9uX2NoYW5uZWxzIGZuX2dka19waXhidWZfZ2V0X25fY2hhbm5lbHMKLSMgIGRlZmluZSBn ZGtfcGl4YnVmX2dldF9waXhlbHMgZm5fZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxzCi0jICBkZWZpbmUg Z2RrX3BpeGJ1Zl9nZXRfcm93c3RyaWRlIGZuX2dka19waXhidWZfZ2V0X3Jvd3N0cmlkZQotIyAg ZGVmaW5lIGdka19waXhidWZfZ2V0X3dpZHRoIGZuX2dka19waXhidWZfZ2V0X3dpZHRoCisjICBk ZWZpbmUgY2Fpcm9fY3JlYXRlIGZuX2NhaXJvX2NyZWF0ZQorIyAgZGVmaW5lIGNhaXJvX2Rlc3Ry b3kgZm5fY2Fpcm9fZGVzdHJveQorIyAgZGVmaW5lIGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRl IGZuX2NhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlCisjICBkZWZpbmUgY2Fpcm9faW1hZ2Vfc3Vy ZmFjZV9nZXRfZGF0YSBmbl9jYWlyb19pbWFnZV9zdXJmYWNlX2dldF9kYXRhCisjICBkZWZpbmUg Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlIGZuX2NhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0 X3N0cmlkZQorIyAgZGVmaW5lIGNhaXJvX3BhaW50IGZuX2NhaXJvX3BhaW50CisjICBkZWZpbmUg Y2Fpcm9fc2V0X3NvdXJjZV9yZ2IgZm5fY2Fpcm9fc2V0X3NvdXJjZV9yZ2IKICMgIGRlZmluZSBn X2NsZWFyX2Vycm9yIGZuX2dfY2xlYXJfZXJyb3IKICMgIGRlZmluZSBnX29iamVjdF91bnJlZiBm bl9nX29iamVjdF91bnJlZgogIyAgaWYgISBHTElCX0NIRUNLX1ZFUlNJT04gKDIsIDM2LCAwKQpA QCAtOTQ3NCw4ICs5NDcxLDggQEAgaW5pdF9zdmdfZnVuY3Rpb25zICh2b2lkKQogIyAgZW5kaWYK ICMgIGRlZmluZSByc3ZnX2hhbmRsZV9jbG9zZSBmbl9yc3ZnX2hhbmRsZV9jbG9zZQogIyAgZGVm aW5lIHJzdmdfaGFuZGxlX2dldF9kaW1lbnNpb25zIGZuX3JzdmdfaGFuZGxlX2dldF9kaW1lbnNp b25zCi0jICBkZWZpbmUgcnN2Z19oYW5kbGVfZ2V0X3BpeGJ1ZiBmbl9yc3ZnX2hhbmRsZV9nZXRf cGl4YnVmCiAjICBkZWZpbmUgcnN2Z19oYW5kbGVfbmV3IGZuX3JzdmdfaGFuZGxlX25ldworIyAg ZGVmaW5lIHJzdmdfaGFuZGxlX3JlbmRlcl9jYWlybyBmbl9yc3ZnX2hhbmRsZV9yZW5kZXJfY2Fp cm8KICMgIGRlZmluZSByc3ZnX2hhbmRsZV9zZXRfYmFzZV91cmkgZm5fcnN2Z19oYW5kbGVfc2V0 X2Jhc2VfdXJpCiAjICBkZWZpbmUgcnN2Z19oYW5kbGVfd3JpdGUgZm5fcnN2Z19oYW5kbGVfd3Jp dGUKIApAQCAtOTU1MCwxMSArOTU0Nyw2IEBAIHN2Z19sb2FkX2ltYWdlIChzdHJ1Y3QgZnJhbWUg KmYsIHN0cnVjdCBpbWFnZSAqaW1nLCBjaGFyICpjb250ZW50cywKICAgUnN2Z0hhbmRsZSAqcnN2 Z19oYW5kbGU7CiAgIFJzdmdEaW1lbnNpb25EYXRhIGRpbWVuc2lvbl9kYXRhOwogICBHRXJyb3Ig KmVyciA9IE5VTEw7Ci0gIEdka1BpeGJ1ZiAqcGl4YnVmOwotICBpbnQgd2lkdGg7Ci0gIGludCBo ZWlnaHQ7Ci0gIGNvbnN0IGd1aW50OCAqcGl4ZWxzOwotICBpbnQgcm93c3RyaWRlOwogCiAjaWYg ISBHTElCX0NIRUNLX1ZFUlNJT04gKDIsIDM2LCAwKQogICAvKiBnX3R5cGVfaW5pdCBpcyBhIGds aWIgZnVuY3Rpb24gdGhhdCBtdXN0IGJlIGNhbGxlZCBwcmlvciB0bwpAQCAtOTU5NiwxMDQgKzk1 ODgsNzggQEAgc3ZnX2xvYWRfaW1hZ2UgKHN0cnVjdCBmcmFtZSAqZiwgc3RydWN0IGltYWdlICpp bWcsIGNoYXIgKmNvbnRlbnRzLAogICAjZW5kaWYKIAogICByc3ZnX2hhbmRsZV9nZXRfZGltZW5z aW9ucyAocnN2Z19oYW5kbGUsICZkaW1lbnNpb25fZGF0YSk7Ci0gIGlmICghIGNoZWNrX2ltYWdl X3NpemUgKGYsIGRpbWVuc2lvbl9kYXRhLndpZHRoLCBkaW1lbnNpb25fZGF0YS5oZWlnaHQpKQor ICBpbnQgd2lkdGggPSBkaW1lbnNpb25fZGF0YS53aWR0aCwgaGVpZ2h0ID0gZGltZW5zaW9uX2Rh dGEuaGVpZ2h0OworICBpZiAoISBjaGVja19pbWFnZV9zaXplIChmLCB3aWR0aCwgaGVpZ2h0KSkK ICAgICB7CiAgICAgICBpbWFnZV9zaXplX2Vycm9yICgpOwogICAgICAgZ290byByc3ZnX2Vycm9y OwogICAgIH0KIAotICAvKiBXZSBjYW4gbm93IGdldCBhIHZhbGlkIHBpeGVsIGJ1ZmZlciBmcm9t IHRoZSBzdmcgZmlsZSwgaWYgYWxsCi0gICAgIHdlbnQgb2suICAqLwotICBwaXhidWYgPSByc3Zn X2hhbmRsZV9nZXRfcGl4YnVmIChyc3ZnX2hhbmRsZSk7Ci0gIGlmICghcGl4YnVmKSBnb3RvIHJz dmdfZXJyb3I7Ci0gIGdfb2JqZWN0X3VucmVmIChyc3ZnX2hhbmRsZSk7Ci0KLSAgLyogRXh0cmFj dCBzb21lIG1ldGEgZGF0YSBmcm9tIHRoZSBzdmcgaGFuZGxlLiAgKi8KLSAgd2lkdGggICAgID0g Z2RrX3BpeGJ1Zl9nZXRfd2lkdGggKHBpeGJ1Zik7Ci0gIGhlaWdodCAgICA9IGdka19waXhidWZf Z2V0X2hlaWdodCAocGl4YnVmKTsKLSAgcGl4ZWxzICAgID0gZ2RrX3BpeGJ1Zl9nZXRfcGl4ZWxz IChwaXhidWYpOwotICByb3dzdHJpZGUgPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUgKHBpeGJ1 Zik7Ci0KLSAgLyogVmFsaWRhdGUgdGhlIHN2ZyBtZXRhIGRhdGEuICAqLwotICBlYXNzZXJ0IChn ZGtfcGl4YnVmX2dldF9jb2xvcnNwYWNlIChwaXhidWYpID09IEdES19DT0xPUlNQQUNFX1JHQik7 Ci0gIGVhc3NlcnQgKGdka19waXhidWZfZ2V0X25fY2hhbm5lbHMgKHBpeGJ1ZikgPT0gNCk7Ci0g IGVhc3NlcnQgKGdka19waXhidWZfZ2V0X2hhc19hbHBoYSAocGl4YnVmKSk7Ci0gIGVhc3NlcnQg KGdka19waXhidWZfZ2V0X2JpdHNfcGVyX3NhbXBsZSAocGl4YnVmKSA9PSA4KTsKLQotICB7Ci0g ICAgLyogVHJ5IHRvIGNyZWF0ZSBhIHggcGl4bWFwIHRvIGhvbGQgdGhlIHN2ZyBwaXhtYXAuICAq LwotICAgIEVtYWNzX1BpeF9Db250YWluZXIgeGltZzsKLSAgICBpZiAoIWltYWdlX2NyZWF0ZV94 X2ltYWdlX2FuZF9waXhtYXAgKGYsIGltZywgd2lkdGgsIGhlaWdodCwgMCwgJnhpbWcsIDApKQot ICAgICAgewotCWdfb2JqZWN0X3VucmVmIChwaXhidWYpOwotCXJldHVybiAwOwotICAgICAgfQor ICAvKiBUcnkgdG8gY3JlYXRlIGEgeCBwaXhtYXAgdG8gaG9sZCB0aGUgc3ZnIHBpeG1hcC4gICov CisgIEVtYWNzX1BpeF9Db250YWluZXIgeGltZzsKKyAgaWYgKCFpbWFnZV9jcmVhdGVfeF9pbWFn ZV9hbmRfcGl4bWFwIChmLCBpbWcsIHdpZHRoLCBoZWlnaHQsIDAsICZ4aW1nLCAwKSkKKyAgICB7 CisgICAgICBnX29iamVjdF91bnJlZiAocnN2Z19oYW5kbGUpOworICAgICAgcmV0dXJuIDA7Cisg ICAgfQogCi0gICAgaW5pdF9jb2xvcl90YWJsZSAoKTsKKyAgaW5pdF9jb2xvcl90YWJsZSAoKTsK IAotICAgIC8qIEhhbmRsZSBhbHBoYSBjaGFubmVsIGJ5IGNvbWJpbmluZyB0aGUgaW1hZ2Ugd2l0 aCBhIGJhY2tncm91bmQKLSAgICAgICBjb2xvci4gICovCi0gICAgRW1hY3NfQ29sb3IgYmFja2dy b3VuZDsKLSAgICBMaXNwX09iamVjdCBzcGVjaWZpZWRfYmcgPSBpbWFnZV9zcGVjX3ZhbHVlIChp bWctPnNwZWMsIFFDYmFja2dyb3VuZCwgTlVMTCk7Ci0gICAgaWYgKCFTVFJJTkdQIChzcGVjaWZp ZWRfYmcpCi0JfHwgIUZSQU1FX1RFUk1JTkFMIChmKS0+ZGVmaW5lZF9jb2xvcl9ob29rIChmLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTREFU QSAoc3BlY2lmaWVkX2JnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmYmFja2dyb3VuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpCi0gICAgICBGUkFNRV9URVJNSU5BTCAo ZiktPnF1ZXJ5X2ZyYW1lX2JhY2tncm91bmRfY29sb3IgKGYsICZiYWNrZ3JvdW5kKTsKLQotICAg IC8qIFNWRyBwaXhtYXBzIHNwZWNpZnkgdHJhbnNwYXJlbmN5IGluIHRoZSBsYXN0IGJ5dGUsIHNv IHJpZ2h0Ci0gICAgICAgc2hpZnQgOCBiaXRzIHRvIGdldCByaWQgb2YgaXQsIHNpbmNlIGVtYWNz IGRvZXNuJ3Qgc3VwcG9ydAotICAgICAgIHRyYW5zcGFyZW5jeS4gICovCi0gICAgYmFja2dyb3Vu ZC5yZWQgICA+Pj0gODsKLSAgICBiYWNrZ3JvdW5kLmdyZWVuID4+PSA4OwotICAgIGJhY2tncm91 bmQuYmx1ZSAgPj49IDg7Ci0KLSAgICAvKiBUaGlzIGxvb3AgaGFuZGxlcyBvcGFjaXR5IHZhbHVl cywgc2luY2UgRW1hY3MgYXNzdW1lcwotICAgICAgIG5vbi10cmFuc3BhcmVudCBpbWFnZXMuICBF YWNoIHBpeGVsIG11c3QgYmUgImZsYXR0ZW5lZCIgYnkKLSAgICAgICBjYWxjdWxhdGluZyB0aGUg cmVzdWx0aW5nIGNvbG9yLCBnaXZlbiB0aGUgdHJhbnNwYXJlbmN5IG9mIHRoZQotICAgICAgIHBp eGVsLCBhbmQgdGhlIGltYWdlIGJhY2tncm91bmQgY29sb3IuICAqLwotICAgIGZvciAoaW50IHkg PSAwOyB5IDwgaGVpZ2h0OyArK3kpCi0gICAgICB7Ci0JZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0 aDsgKyt4KQotCSAgewotCSAgICBpbnQgcmVkICAgICA9ICpwaXhlbHMrKzsKLQkgICAgaW50IGdy ZWVuICAgPSAqcGl4ZWxzKys7Ci0JICAgIGludCBibHVlICAgID0gKnBpeGVscysrOwotCSAgICBp bnQgb3BhY2l0eSA9ICpwaXhlbHMrKzsKLQotCSAgICByZWQgICA9ICgocmVkICogb3BhY2l0eSkK LQkJICAgICArIChiYWNrZ3JvdW5kLnJlZCAqICgoMSA8PCA4KSAtIG9wYWNpdHkpKSk7Ci0JICAg IGdyZWVuID0gKChncmVlbiAqIG9wYWNpdHkpCi0JCSAgICAgKyAoYmFja2dyb3VuZC5ncmVlbiAq ICgoMSA8PCA4KSAtIG9wYWNpdHkpKSk7Ci0JICAgIGJsdWUgID0gKChibHVlICogb3BhY2l0eSkK LQkJICAgICArIChiYWNrZ3JvdW5kLmJsdWUgKiAoKDEgPDwgOCkgLSBvcGFjaXR5KSkpOwotCi0J ICAgIFBVVF9QSVhFTCAoeGltZywgeCwgeSwgbG9va3VwX3JnYl9jb2xvciAoZiwgcmVkLCBncmVl biwgYmx1ZSkpOwotCSAgfQorICAvKiBIYW5kbGUgYWxwaGEgY2hhbm5lbCBieSBjb21iaW5pbmcg dGhlIGltYWdlIHdpdGggYSBiYWNrZ3JvdW5kCisgICAgIGNvbG9yLiAgKi8KKyAgRW1hY3NfQ29s b3IgYmFja2dyb3VuZDsKKyAgTGlzcF9PYmplY3Qgc3BlY2lmaWVkX2JnID0gaW1hZ2Vfc3BlY192 YWx1ZSAoaW1nLT5zcGVjLCBRQ2JhY2tncm91bmQsIE5VTEwpOworICBpZiAoIVNUUklOR1AgKHNw ZWNpZmllZF9iZykKKyAgICAgIHx8ICFGUkFNRV9URVJNSU5BTCAoZiktPmRlZmluZWRfY29sb3Jf aG9vayAoZiwKKwkJCQkJCSAgU1NEQVRBIChzcGVjaWZpZWRfYmcpLAorCQkJCQkJICAmYmFja2dy b3VuZCwKKwkJCQkJCSAgZmFsc2UsCisJCQkJCQkgIGZhbHNlKSkKKyAgICBGUkFNRV9URVJNSU5B TCAoZiktPnF1ZXJ5X2ZyYW1lX2JhY2tncm91bmRfY29sb3IgKGYsICZiYWNrZ3JvdW5kKTsKKwor ICBjYWlyb19zdXJmYWNlX3QgKnN1cmZhY2UgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZSAo Q0FJUk9fRk9STUFUX1JHQjI0LAorCQkJCQkJCSB3aWR0aCwgaGVpZ2h0KTsKKyAgY2Fpcm9fdCAq Y3IgPSBjYWlyb19jcmVhdGUgKHN1cmZhY2UpOworICBjYWlyb19zZXRfc291cmNlX3JnYiAoY3Is IGJhY2tncm91bmQucmVkID4+IDgsCisJCQliYWNrZ3JvdW5kLmdyZWVuID4+IDgsIGJhY2tncm91 bmQuYmx1ZSA+PiA4KTsKKyAgY2Fpcm9fcGFpbnQgKGNyKTsKKyAgcnN2Z19oYW5kbGVfcmVuZGVy X2NhaXJvIChyc3ZnX2hhbmRsZSwgY3IpOworICBjYWlyb19kZXN0cm95IChjcik7CisgIGdfb2Jq ZWN0X3VucmVmIChyc3ZnX2hhbmRsZSk7CiAKLQlwaXhlbHMgKz0gcm93c3RyaWRlIC0gNCAqIHdp ZHRoOwotICAgICAgfQorICB1bnNpZ25lZCBjaGFyICpkYXRhID0gY2Fpcm9faW1hZ2Vfc3VyZmFj ZV9nZXRfZGF0YSAoc3VyZmFjZSk7CisgIGludCBzdHJpZGUgPSBjYWlyb19pbWFnZV9zdXJmYWNl X2dldF9zdHJpZGUgKHN1cmZhY2UpOworICBmb3IgKGludCB5ID0gMDsgeSA8IGhlaWdodDsgKyt5 KQorICAgIHsKKyAgICAgIGd1aW50MzIgKnBpeGVscyA9IChndWludDMyICopIGRhdGE7CisgICAg ICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpCisJeworCSAgZ3VpbnQzMiByZ2IgPSAq cGl4ZWxzKys7CisJICBpbnQgcmVkICAgPSAoKHJnYiA+PiAxNikgJiAweGZmKSA8PCA4OworCSAg aW50IGdyZWVuID0gKChyZ2IgPj4gOCkgJiAweGZmKSA8PCA4OworCSAgaW50IGJsdWUgID0gKHJn YiAmIDB4ZmYpIDw8IDg7CisJICBQVVRfUElYRUwgKHhpbWcsIHgsIHksIGxvb2t1cF9yZ2JfY29s b3IgKGYsIHJlZCwgZ3JlZW4sIGJsdWUpKTsKKwl9CisgICAgICBkYXRhICs9IHN0cmlkZTsKKyAg ICB9CiAKICNpZmRlZiBDT0xPUl9UQUJMRV9TVVBQT1JUCi0gICAgLyogUmVtZW1iZXIgY29sb3Jz IGFsbG9jYXRlZCBmb3IgdGhpcyBpbWFnZS4gICovCi0gICAgaW1nLT5jb2xvcnMgPSBjb2xvcnNf aW5fY29sb3JfdGFibGUgKCZpbWctPm5jb2xvcnMpOwotICAgIGZyZWVfY29sb3JfdGFibGUgKCk7 CisgIC8qIFJlbWVtYmVyIGNvbG9ycyBhbGxvY2F0ZWQgZm9yIHRoaXMgaW1hZ2UuICAqLworICBp bWctPmNvbG9ycyA9IGNvbG9yc19pbl9jb2xvcl90YWJsZSAoJmltZy0+bmNvbG9ycyk7CisgIGZy ZWVfY29sb3JfdGFibGUgKCk7CiAjZW5kaWYgLyogQ09MT1JfVEFCTEVfU1VQUE9SVCAqLwogCi0g ICAgZ19vYmplY3RfdW5yZWYgKHBpeGJ1Zik7CisgIGNhaXJvX3N1cmZhY2VfZGVzdHJveSAoc3Vy ZmFjZSk7CiAKLSAgICBpbWctPndpZHRoICA9IHdpZHRoOwotICAgIGltZy0+aGVpZ2h0ID0gaGVp Z2h0OworICBpbWctPndpZHRoICA9IHdpZHRoOworICBpbWctPmhlaWdodCA9IGhlaWdodDsKIAot ICAgIC8qIE1heWJlIGZpbGwgaW4gdGhlIGJhY2tncm91bmQgZmllbGQgd2hpbGUgd2UgaGF2ZSB4 aW1nIGhhbmR5LgotICAgICAgIENhc3RpbmcgYXZvaWRzIGEgR0NDIHdhcm5pbmcuICAqLwotICAg IElNQUdFX0JBQ0tHUk9VTkQgKGltZywgZiwgKEVtYWNzX1BpeF9Db250ZXh0KXhpbWcpOworICAv KiBNYXliZSBmaWxsIGluIHRoZSBiYWNrZ3JvdW5kIGZpZWxkIHdoaWxlIHdlIGhhdmUgeGltZyBo YW5keS4KKyAgICAgQ2FzdGluZyBhdm9pZHMgYSBHQ0Mgd2FybmluZy4gICovCisgIElNQUdFX0JB Q0tHUk9VTkQgKGltZywgZiwgKEVtYWNzX1BpeF9Db250ZXh0KXhpbWcpOwogCi0gICAgLyogUHV0 IHhpbWcgaW50byB0aGUgaW1hZ2UuICAqLwotICAgIGltYWdlX3B1dF94X2ltYWdlIChmLCBpbWcs IHhpbWcsIDApOwotICB9CisgIC8qIFB1dCB4aW1nIGludG8gdGhlIGltYWdlLiAgKi8KKyAgaW1h Z2VfcHV0X3hfaW1hZ2UgKGYsIGltZywgeGltZywgMCk7CiAKICAgcmV0dXJuIDE7CiAKQEAgLTEw MjQ5LDcgKzEwMjE1LDcgQEAgbm9uLW51bWVyaWMsIHRoZXJlIGlzIG5vIGV4cGxpY2l0IGxpbWl0 IG9uIHRoZSBzaXplIG9mIGltYWdlcy4gICovKTsKICAgYWRkX2ltYWdlX3R5cGUgKFFzdmcpOwog I2lmZGVmIEhBVkVfTlRHVUkKICAgLyogT3RoZXIgbGlicmFyaWVzIHVzZWQgZGlyZWN0bHkgYnkg c3ZnIGNvZGUuICAqLwotICBERUZTWU0gKFFnZGtfcGl4YnVmLCAiZ2RrLXBpeGJ1ZiIpOworICBE RUZTWU0gKFFjYWlybywgImNhaXJvIik7CiAgIERFRlNZTSAoUWdsaWIsICJnbGliIik7CiAgIERF RlNZTSAoUWdvYmplY3QsICJnb2JqZWN0Iik7CiAjZW5kaWYgLyogSEFWRV9OVEdVSSAgKi8K --Multipart_Mon_Jun_24_16:56:45_2019-1--