From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#34663: remove ftx font backend Date: Sun, 6 Oct 2019 14:58:39 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000028117405943d7fb9" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="167431"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 34663@debbugs.gnu.org To: Glenn Morris Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Oct 06 15:00:26 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 1iH69A-000hNJ-I3 for geb-bug-gnu-emacs@m.gmane.org; Sun, 06 Oct 2019 15:00:24 +0200 Original-Received: from localhost ([::1]:33604 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iH697-00023I-KF for geb-bug-gnu-emacs@m.gmane.org; Sun, 06 Oct 2019 09:00:22 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59256) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iH68s-00020d-Uj for bug-gnu-emacs@gnu.org; Sun, 06 Oct 2019 09:00:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iH68q-0000Qt-AX for bug-gnu-emacs@gnu.org; Sun, 06 Oct 2019 09:00:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36981) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iH68o-0000PQ-NE for bug-gnu-emacs@gnu.org; Sun, 06 Oct 2019 09:00:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iH68o-000515-IC for bug-gnu-emacs@gnu.org; Sun, 06 Oct 2019 09:00:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 06 Oct 2019 13:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 34663 X-GNU-PR-Package: emacs Original-Received: via spool by 34663-submit@debbugs.gnu.org id=B34663.157036674819171 (code B ref 34663); Sun, 06 Oct 2019 13:00:02 +0000 Original-Received: (at 34663) by debbugs.gnu.org; 6 Oct 2019 12:59:08 +0000 Original-Received: from localhost ([127.0.0.1]:45799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iH67p-0004yi-9E for submit@debbugs.gnu.org; Sun, 06 Oct 2019 08:59:07 -0400 Original-Received: from mail-pg1-f176.google.com ([209.85.215.176]:37142) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iH67k-0004yO-Jd for 34663@debbugs.gnu.org; Sun, 06 Oct 2019 08:59:00 -0400 Original-Received: by mail-pg1-f176.google.com with SMTP id p1so4761984pgi.4 for <34663@debbugs.gnu.org>; Sun, 06 Oct 2019 05:58:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=J4lwxQLHvqk4zZ166iF6LboePJKWsbxHBWCB2+qpwYE=; b=SfLMb3c4M5BFy50svajeRgRWdmBJ610748QHphYDOW9V142yq3kt2b6yxc/kdRneBI IlH6IMS/XY/q62/a0NiiynFMEOrheFKydb7qKE/tEWGey8yYJSLB128VsJgmSL4BTlIB /p2EntmiJtiHVZ66v0IxPZaiAIXF8pjzT0ho+yBWjJ8nw5o4chavG9Wp1GUi3fMNYvwi YxkCnWMnTOtJdyaPUa8xsfIh6o7Em3675F/kgG+1JrtIxcG2eBKs+SCjswj+ibV3yU7U ZAHHzJLNN/zW9o5ZfrYCGBRllFg7WUfofUd1HROZmOtoeoJ9dOCSMKZ5lkT0VGIwb8LA J7LA== X-Gm-Message-State: APjAAAW2u6o7Ontr4UkN8xkZtFAymPfwWEwS+vfOKzL48b0zdISTjx8L Jd/PYh9H1CK0hemAJ0UJ9DFMzDhKO8Fp8OfaHFEJ5foo/8A= X-Google-Smtp-Source: APXvYqx0oqf5tlQSt0+VViJtQZV7LjxV4uEjlAFxPG4yZrWJu9T92Fbl3TGXI032SHJNym9hSIjwrrQLgs0tRXY9edA= X-Received: by 2002:aa7:8750:: with SMTP id g16mr27031854pfo.190.1570366730790; Sun, 06 Oct 2019 05:58:50 -0700 (PDT) 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:168426 Archived-At: --00000000000028117405943d7fb9 Content-Type: text/plain; charset="UTF-8" Glenn Morris writes: > Package: emacs > Severity: wishlist > Version: 26.2 > > Ref: http://lists.gnu.org/r/emacs-devel/2019-02/msg00340.html How about the attached patch? Best regards, Stefan Kangas --00000000000028117405943d7fb9 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Remove-unused-ftx-font-backend-driver.patch" Content-Disposition: attachment; filename="0001-Remove-unused-ftx-font-backend-driver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1ezs8bh0 RnJvbSAwOTI5ZmNjM2NhMDg0N2JlYjNjNWZhYmM1ODk5MWMxZDRmODMwNDViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5rYW5nYXNAZ21haWwuY29t PgpEYXRlOiBTdW4sIDYgT2N0IDIwMTkgMTQ6NDU6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBS ZW1vdmUgdW51c2VkIGZ0eCBmb250IGJhY2tlbmQgZHJpdmVyCgoqIHNyYy9mdHhmb250LmM6IFJl bW92ZSBmaWxlLgoqIGFkbWluL25vdGVzL2ZvbnQtYmFja2VuZDoKKiBjb25maWd1cmUuYWM6Ciog c3JjL01ha2VmaWxlLmluOgoqIHNyYy9kZXBzLm1rIChmdHhmb250Lm8pOgoqIHNyYy9mb250LmMg KHN5bXNfb2ZfZm9udCk6Ciogc3JjL2ZvbnQuaCAodG9wLWxldmVsLCBmb250X3Byb3BlcnR5X2lu ZGV4KToKKiBzcmMveGZucy5jIChGeF9jcmVhdGVfZnJhbWUsIHhfY3JlYXRlX3RpcF9mcmFtZSk6 IFJlbW92ZSB1bnVzZWQgZnR4CmZvbnQgYmFja2VuZCBkcml2ZXIuICAoQnVnIzM0NjYzKQotLS0K IGFkbWluL25vdGVzL2ZvbnQtYmFja2VuZCB8ICAgMiAtCiBjb25maWd1cmUuYWMgICAgICAgICAg ICAgfCAgIDYgKy0KIHNyYy9NYWtlZmlsZS5pbiAgICAgICAgICB8ICAgNiArLQogc3JjL2RlcHMu bWsgICAgICAgICAgICAgIHwgICAzIC0KIHNyYy9mb250LmMgICAgICAgICAgICAgICB8ICAgMSAt CiBzcmMvZm9udC5oICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9mdHhmb250LmMgICAgICAg ICAgICB8IDM3MSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy94 Zm5zLmMgICAgICAgICAgICAgICB8ICAgNCAtCiA4IGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9u cygrKSwgMzkyIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9mdHhmb250LmMK CmRpZmYgLS1naXQgYS9hZG1pbi9ub3Rlcy9mb250LWJhY2tlbmQgYi9hZG1pbi9ub3Rlcy9mb250 LWJhY2tlbmQKaW5kZXggZWVmNzQzOWJjYy4uZjM0ZDY0MTMyMCAxMDA2NDQKLS0tIGEvYWRtaW4v bm90ZXMvZm9udC1iYWNrZW5kCisrKyBiL2FkbWluL25vdGVzL2ZvbnQtYmFja2VuZApAQCAtMTUs OCArMTUsNiBAQCBUaGUgbmV3IGZpbGVzIGFyZToKIAkJZGV2aWNlLWluZGVwZW5kZW50IG1ldGhv ZHMgb2Ygc3RydWN0IGZvbnRfZHJpdmVyLgogCXhmdGZvbnQuYyAtLSBmb250LWRyaXZlciBvbiBY IHVzaW5nIFhmdCBmb3IgRnJlZVR5cGUgZm9udHMKIAkJdXRpbGl6aW5nIG1ldGhvZHMgcHJvdmlk ZWQgYnkgZnRmb250LmMuCi0JZnR4Zm9udC5jIC0tIGZvbnQtZHJpdmVyIG9uIFggZGlyZWN0bHkg dXNpbmcgRnJlZVR5cGUgZm9udHMKLQkJdXRpbGl6aW5nIG1ldGhvZHMgcHJvdmlkZWQgYnkgZnRm b250LmMuCiAJdzMyZm9udC5jIC0tIGZvbnQgZHJpdmVyIG9uIHczMiB1c2luZyBXaW5kb3dzIG5h dGl2ZSBmb250cywKIAkJY29ycmVzcG9uZGluZyB0byB4Zm9udC5jCiAJdzMydW5pc2NyaWJlLmMg LS0gZm9udCBkcml2ZXIgb24gdzMyLCB1c2luZyB0aGUgdW5pc2NyaWJlIEFQSQpkaWZmIC0tZ2l0 IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDc0MzVmMmU4ZGEuLmNkMzY4YmI4 ZGMgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTMzODEs OCArMzM4MSw2IEBAIEFDX0RFRlVOCiAgICAgICBmaSAgICAgICAgICAgICAgICAgICAgICAgICAg IyAiJEhBVkVfWEZUIiAhPSBubwogICAgIGZpICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg Ingke3dpdGhfeGZ0fSIgIT0gInhubyIKIAotICAgICMjIFdlIHVzZWQgdG8gYWxsb3cgYnVpbGRp bmcgd2l0aCBGcmVlVHlwZSBhbmQgd2l0aG91dCBYZnQuCi0gICAgIyMgSG93ZXZlciwgdGhlIGZ0 eCBmb250IGJhY2tlbmQgZHJpdmVyIGlzIG5vdCBpbiBnb29kIHNoYXBlLgogICAgIGlmIHRlc3Qg IiRIQVZFX1hGVCIgIT0gInllcyI7IHRoZW4KICAgICAgICBkbmwgRm9yIHRoZSAiRG9lcyBFbWFj cyB1c2UiIG1lc3NhZ2UgYXQgdGhlIGVuZC4KICAgICAgICBIQVZFX1hGVD1ubwpAQCAtNTI1NCw5 ICs1MjUyLDkgQEAgQUNfREVGVU4KICAgaWYgdGVzdCAiJEhBVkVfQ0FJUk8iID0gInllcyI7IHRo ZW4KICAgICBGT05UX09CSj0iJEZPTlRfT0JKIGZ0Zm9udC5vIGZ0Y3Jmb250Lm8iCiAgIGVsaWYg dGVzdCAiJEhBVkVfWEZUIiA9ICJ5ZXMiOyB0aGVuCi0gICAgRk9OVF9PQko9IiRGT05UX09CSiBm dGZvbnQubyB4ZnRmb250Lm8gZnR4Zm9udC5vIgorICAgIEZPTlRfT0JKPSIkRk9OVF9PQkogZnRm b250Lm8geGZ0Zm9udC5vIgogICBlbGlmIHRlc3QgIiRIQVZFX0ZSRUVUWVBFIiA9ICJ5ZXMiOyB0 aGVuCi0gICAgRk9OVF9PQko9IiRGT05UX09CSiBmdGZvbnQubyBmdHhmb250Lm8iCisgICAgRk9O VF9PQko9IiRGT05UX09CSiBmdGZvbnQubyIKICAgZmkKIGZpCiBpZiB0ZXN0ICIke0hBVkVfSEFS RkJVWlp9IiA9ICJ5ZXMiIDsgdGhlbgpkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLmluIGIvc3Jj L01ha2VmaWxlLmluCmluZGV4IDc2YWE2YTFlYzUuLmYwYzEzZDVkOTEgMTAwNjQ0Ci0tLSBhL3Ny Yy9NYWtlZmlsZS5pbgorKysgYi9zcmMvTWFrZWZpbGUuaW4KQEAgLTI5NSw4ICsyOTUsOCBAQCBF TUFDU1JFUyA9CiBXMzJfUkVTX0xJTks9QFczMl9SRVNfTElOS0AKIAogIyMgRW1wdHkgaWYgIUhB VkVfWF9XSU5ET1dTCi0jIyB4Zm9udC5vIGZ0Zm9udC5vIHhmdGZvbnQubyBmdHhmb250Lm8gaWYg SEFWRV9YRlQKLSMjIHhmb250Lm8gZnRmb250Lm8gZnR4Zm9udC5vIGlmIEhBVkVfRlJFRVRZUEUK KyMjIHhmb250Lm8gZnRmb250Lm8geGZ0Zm9udC5vIGlmIEhBVkVfWEZUCisjIyB4Zm9udC5vIGZ0 Zm9udC5vIGlmIEhBVkVfRlJFRVRZUEUKICMjIHhmb250Lm8gZnRmb250Lm8gZnRjcmZvbnQubyBp ZiBVU0VfQ0FJUk8KICMjIGVsc2UgeGZvbnQubwogIyMgaWYgSEFWRV9IQVJGQlVaWiwgaGJmb250 Lm8gaXMgYWRkZWQgcmVnYXJkbGVzcyBvZiB0aGUgcmVzdApAQCAtNDM2LDcgKzQzNiw3IEBAIFNP TUVfTUFDSElORV9PQkpFQ1RTID0KICAgbnN0ZXJtLm8gbnNmbnMubyBuc21lbnUubyBuc3NlbGVj dC5vIG5zaW1hZ2UubyBuc2ZvbnQubyBtYWNmb250Lm8gXAogICB3MzIubyB3MzJjb25zb2xlLm8g dzMyY3lnd2lueC5vIHczMmZucy5vIHczMmhlYXAubyB3MzJpbmV2dC5vIHczMm5vdGlmeS5vIFwK ICAgdzMybWVudS5vIHczMnByb2MubyB3MzJyZWcubyB3MzJzZWxlY3QubyB3MzJ0ZXJtLm8gdzMy eGZucy5vIFwKLSAgdzE2c2VsZWN0Lm8gd2lkZ2V0Lm8geGZvbnQubyBmdGZvbnQubyB4ZnRmb250 Lm8gZnR4Zm9udC5vIGd0a3V0aWwubyBcCisgIHcxNnNlbGVjdC5vIHdpZGdldC5vIHhmb250Lm8g ZnRmb250Lm8geGZ0Zm9udC5vIGd0a3V0aWwubyBcCiAgIHhzZXR0aW5ncy5vIHhnc2VsZWN0Lm8g dGVybWNhcC5vIGhiZm9udC5vCiAKICMjIGdtYWxsb2MubyBpZiAhU1lTVEVNX01BTExPQyAmJiAh RE9VR19MRUFfTUFMTE9DLCBlbHNlIGVtcHR5LgpkaWZmIC0tZ2l0IGEvc3JjL2RlcHMubWsgYi9z cmMvZGVwcy5tawppbmRleCAyY2RlYmE4ZDRhLi4yZmQ0YzMxNTE0IDEwMDY0NAotLS0gYS9zcmMv ZGVwcy5taworKysgYi9zcmMvZGVwcy5tawpAQCAtMjM5LDkgKzIzOSw2IEBAIHhmb250Lm86CiB4 ZnRmb250Lm86IHhmdGZvbnQuYyBkaXNwZXh0ZXJuLmggeHRlcm0uaCBmcmFtZS5oIGJsb2NraW5w dXQuaCBjaGFyYWN0ZXIuaCBcCiAgICBjaGFyc2V0LmggZm9udC5oIGxpc3AuaCBnbG9iYWxzLmgg JChjb25maWdfaCkgYXRpbWVyLmggc3lzdGltZS5oIFwKICAgIGZvbnRzZXQuaCBjY2wuaCBmdGZv bnQuaCBjb21wb3NpdGUuaAotZnR4Zm9udC5vOiBmdHhmb250LmMgZGlzcGV4dGVybi5oIHh0ZXJt LmggZnJhbWUuaCBibG9ja2lucHV0LmggY2hhcmFjdGVyLmggXAotICAgY2hhcnNldC5oIGZvbnQu aCBsaXNwLmggZ2xvYmFscy5oICQoY29uZmlnX2gpIGF0aW1lci5oIHN5c3RpbWUuaCBcCi0gICBm b250c2V0LmggY2NsLmgKIG1lbnUubzogbWVudS5jIGxpc3AuaCBrZXlib2FyZC5oIGtleW1hcC5o IGZyYW1lLmggdGVybWhvb2tzLmggYmxvY2tpbnB1dC5oIFwKICAgIGRpc3BleHRlcm4uaCAkKHNy Y2RpcikvLi4vbHdsaWIvbHdsaWIuaCB4dGVybS5oIGd0a3V0aWwuaCBtZW51LmggXAogICAgbGlz cC5oIGdsb2JhbHMuaCAkKGNvbmZpZ19oKSBzeXN0aW1lLmggY29kaW5nLmggY29tcG9zaXRlLmgg d2luZG93LmggXApkaWZmIC0tZ2l0IGEvc3JjL2ZvbnQuYyBiL3NyYy9mb250LmMKaW5kZXggOTM1 ZGQ2NGU2NC4uNTAzMDVhMzBiYiAxMDA2NDQKLS0tIGEvc3JjL2ZvbnQuYworKysgYi9zcmMvZm9u dC5jCkBAIC01NTMzLDcgKzU1MzMsNiBAQCBzeW1zX29mX2ZvbnQgKHZvaWQpCiAjaWZkZWYgVVNF X0NBSVJPCiAgIHN5bXNfb2ZfZnRjcmZvbnQgKCk7CiAjZWxzZQotICBzeW1zX29mX2Z0eGZvbnQg KCk7CiAjaWZkZWYgSEFWRV9YRlQKICAgc3ltc19vZl94ZnRmb250ICgpOwogI2VuZGlmICAvKiBI QVZFX1hGVCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2ZvbnQuaCBiL3NyYy9mb250LmgKaW5kZXggOWQ0 YjJkODFjNi4uODFiMGY0YTNkMyAxMDA2NDQKLS0tIGEvc3JjL2ZvbnQuaAorKysgYi9zcmMvZm9u dC5oCkBAIC02OSw4ICs2OSw4IEBAICNkZWZpbmUgRU1BQ1NfRk9OVF9ICiAKIGVudW0gZm9udF9w cm9wZXJ0eV9pbmRleAogICB7Ci0gICAgLyogRk9OVC1UWVBFIGlzIGEgc3ltYm9sIGluZGljYXRp bmcgYSBmb250IGJhY2tlbmQ7IGN1cnJlbnRseSBgeCcsCi0gICAgICAgYHhmdCcsIGFuZCBgZnR4 JyBhcmUgYXZhaWxhYmxlIG9uIFgsIGB1bmlzY3JpYmUnIGFuZCBgZ2RpJyBvbgorICAgIC8qIEZP TlQtVFlQRSBpcyBhIHN5bWJvbCBpbmRpY2F0aW5nIGEgZm9udCBiYWNrZW5kOyBjdXJyZW50bHkg YHgnCisgICAgICAgYW5kIGB4ZnQnIGFyZSBhdmFpbGFibGUgb24gWCwgYHVuaXNjcmliZScgYW5k IGBnZGknIG9uCiAgICAgICAgV2luZG93cywgYW5kIGBucycgdW5kZXIgQ29jb2EgLyBHTlVzdGVw LiAgKi8KICAgICBGT05UX1RZUEVfSU5ERVgsCiAKQEAgLTkzNyw3ICs5MzcsNiBAQCB2YWxpZF9m b250X2RyaXZlciAoc3RydWN0IGZvbnRfZHJpdmVyIGNvbnN0ICpkKQogZXh0ZXJuIHN0cnVjdCBm b250X2RyaXZlciBjb25zdCB4Zm9udF9kcml2ZXI7CiBleHRlcm4gTGlzcF9PYmplY3QgeGZvbnRf Z2V0X2NhY2hlIChzdHJ1Y3QgZnJhbWUgKik7CiBleHRlcm4gdm9pZCBzeW1zX29mX3hmb250ICh2 b2lkKTsKLWV4dGVybiB2b2lkIHN5bXNfb2ZfZnR4Zm9udCAodm9pZCk7CiAjaWZkZWYgSEFWRV9Y RlQKIGV4dGVybiBzdHJ1Y3QgZm9udF9kcml2ZXIgY29uc3QgeGZ0Zm9udF9kcml2ZXI7CiAjaWZk ZWYgSEFWRV9IQVJGQlVaWgpAQCAtOTQ1LDcgKzk0NCw2IEBAIHZhbGlkX2ZvbnRfZHJpdmVyIChz dHJ1Y3QgZm9udF9kcml2ZXIgY29uc3QgKmQpCiAjZW5kaWYJLyogSEFWRV9IQVJGQlVaWiAqLwog I2VuZGlmCiAjaWYgZGVmaW5lZCBIQVZFX0ZSRUVUWVBFIHx8IGRlZmluZWQgSEFWRV9YRlQKLWV4 dGVybiBzdHJ1Y3QgZm9udF9kcml2ZXIgY29uc3QgZnR4Zm9udF9kcml2ZXI7CiBleHRlcm4gdm9p ZCBzeW1zX29mX3hmdGZvbnQgKHZvaWQpOwogI2VuZGlmCiAjaWZkZWYgSEFWRV9CREZGT05UCmRp ZmYgLS1naXQgYS9zcmMvZnR4Zm9udC5jIGIvc3JjL2Z0eGZvbnQuYwpkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMWQxYmQyYzQ1OC4uMDAwMDAwMDAwMAotLS0gYS9zcmMvZnR4Zm9udC5j CisrKyAvZGV2L251bGwKQEAgLTEsMzcxICswLDAgQEAKLS8qIGZ0eGZvbnQuYyAtLSBGcmVlVHlw ZSBmb250IGRyaXZlciBvbiBYICh3aXRob3V0IHVzaW5nIFhGVCkuCi0gICBDb3B5cmlnaHQgKEMp IDIwMDYtMjAxOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSAgIENvcHlyaWdodCAo QykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMQotICAgICBOYXRpb25hbCBJbnN0 aXR1dGUgb2YgQWR2YW5jZWQgSW5kdXN0cmlhbCBTY2llbmNlIGFuZCBUZWNobm9sb2d5IChBSVNU KQotICAgICBSZWdpc3RyYXRpb24gTnVtYmVyIEgxM1BSTzAwOQotCi1UaGlzIGZpbGUgaXMgcGFy dCBvZiBHTlUgRW1hY3MuCi0KLUdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci1pdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Ci15 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLUdOVSBFbWFjcyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLU1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLUdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLVlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi1hbG9u ZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwotCi0jaW5jbHVkZSA8Y29uZmlnLmg+Ci0jaW5jbHVkZSA8WDExL1hsaWIuaD4K LQotI2luY2x1ZGUgImxpc3AuaCIKLSNpbmNsdWRlICJ4dGVybS5oIgotI2luY2x1ZGUgImZyYW1l LmgiCi0jaW5jbHVkZSAiYmxvY2tpbnB1dC5oIgotI2luY2x1ZGUgImZvbnQuaCIKLSNpbmNsdWRl ICJwZHVtcGVyLmgiCi0KLS8qIEZUWCBmb250IGRyaXZlci4gICovCi0KLXN0cnVjdCBmdHhmb250 X2ZyYW1lX2RhdGEKLXsKLSAgLyogQmFja2dyb3VuZCBhbmQgZm9yZWdyb3VuZCBjb2xvcnMuICAq LwotICBYQ29sb3IgY29sb3JzWzJdOwotICAvKiBHQ3MgaW50ZXJwb2xhdGluZyB0aGUgYWJvdmUg Y29sb3JzLiAgZ2NzWzBdIGlzIGZvciBhIGNvbG9yCi0gICBjbG9zZXN0IHRvIEJBQ0tHUk9VTkQs IGFuZCBnY3NbNV0gaXMgZm9yIGEgY29sb3IgY2xvc2VzdCB0bwotICAgRk9SRUdST1VORC4gICov Ci0gIEdDIGdjc1s2XTsKLSAgc3RydWN0IGZ0eGZvbnRfZnJhbWVfZGF0YSAqbmV4dDsKLX07Ci0K LQotLyogUmV0dXJuIGFuIGFycmF5IG9mIDYgR0NzIGZvciBhbnRpYWxpYXNpbmcuICAqLwotCi1z dGF0aWMgR0MgKgotZnR4Zm9udF9nZXRfZ2NzIChzdHJ1Y3QgZnJhbWUgKmYsIHVuc2lnbmVkIGxv bmcgZm9yZWdyb3VuZCwgdW5zaWduZWQgbG9uZyBiYWNrZ3JvdW5kKQotewotICBYQ29sb3IgY29s b3I7Ci0gIFhHQ1ZhbHVlcyB4Z2N2OwotICBpbnQgaTsKLSAgc3RydWN0IGZ0eGZvbnRfZnJhbWVf ZGF0YSAqZGF0YSA9IGZvbnRfZ2V0X2ZyYW1lX2RhdGEgKGYsIFFmdHgpOwotICBzdHJ1Y3QgZnR4 Zm9udF9mcmFtZV9kYXRhICpwcmV2ID0gTlVMTCwgKnRoaXMgPSBOVUxMLCAqbmV3OwotCi0gIGlm IChkYXRhKQotICAgIHsKLSAgICAgIGZvciAodGhpcyA9IGRhdGE7IHRoaXM7IHByZXYgPSB0aGlz LCB0aGlzID0gdGhpcy0+bmV4dCkKLQl7Ci0JICBpZiAodGhpcy0+Y29sb3JzWzBdLnBpeGVsIDwg YmFja2dyb3VuZCkKLQkgICAgY29udGludWU7Ci0JICBpZiAodGhpcy0+Y29sb3JzWzBdLnBpeGVs ID4gYmFja2dyb3VuZCkKLQkgICAgYnJlYWs7Ci0JICBpZiAodGhpcy0+Y29sb3JzWzFdLnBpeGVs IDwgZm9yZWdyb3VuZCkKLQkgICAgY29udGludWU7Ci0JICBpZiAodGhpcy0+Y29sb3JzWzFdLnBp eGVsID4gZm9yZWdyb3VuZCkKLQkgICAgYnJlYWs7Ci0JICByZXR1cm4gdGhpcy0+Z2NzOwotCX0K LSAgICB9Ci0KLSAgbmV3ID0geG1hbGxvYyAoc2l6ZW9mICpuZXcpOwotICBuZXctPm5leHQgPSB0 aGlzOwotICBpZiAocHJldikKLSAgICAgIHByZXYtPm5leHQgPSBuZXc7Ci0gIGZvbnRfcHV0X2Zy YW1lX2RhdGEgKGYsIFFmdHgsIG5ldyk7Ci0KLSAgbmV3LT5jb2xvcnNbMF0ucGl4ZWwgPSBiYWNr Z3JvdW5kOwotICBuZXctPmNvbG9yc1sxXS5waXhlbCA9IGZvcmVncm91bmQ7Ci0KLSAgYmxvY2tf aW5wdXQgKCk7Ci0gIFhRdWVyeUNvbG9ycyAoRlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfWF9D T0xPUk1BUCAoZiksIG5ldy0+Y29sb3JzLCAyKTsKLSAgZm9yIChpID0gMTsgaSA8IDc7IGkrKykK LSAgICB7Ci0gICAgICAvKiBJbnRlcnBvbGF0ZSBjb2xvcnMgbGluZWFybHkuICBBbnkgYmV0dGVy IGFsZ29yaXRobT8gICovCi0gICAgICBjb2xvci5yZWQKLQk9IChuZXctPmNvbG9yc1sxXS5yZWQg KiBpICsgbmV3LT5jb2xvcnNbMF0ucmVkICogKDggLSBpKSkgLyA4OwotICAgICAgY29sb3IuZ3Jl ZW4KLQk9IChuZXctPmNvbG9yc1sxXS5ncmVlbiAqIGkgKyBuZXctPmNvbG9yc1swXS5ncmVlbiAq ICg4IC0gaSkpIC8gODsKLSAgICAgIGNvbG9yLmJsdWUKLQk9IChuZXctPmNvbG9yc1sxXS5ibHVl ICogaSArIG5ldy0+Y29sb3JzWzBdLmJsdWUgKiAoOCAtIGkpKSAvIDg7Ci0gICAgICBpZiAoISB4 X2FsbG9jX25lYXJlc3RfY29sb3IgKGYsIEZSQU1FX1hfQ09MT1JNQVAgKGYpLCAmY29sb3IpKQot CWJyZWFrOwotICAgICAgeGdjdi5mb3JlZ3JvdW5kID0gY29sb3IucGl4ZWw7Ci0gICAgICBuZXct Pmdjc1tpIC0gMV0gPSBYQ3JlYXRlR0MgKEZSQU1FX1hfRElTUExBWSAoZiksIEZSQU1FX1hfRFJB V0FCTEUgKGYpLAotCQkJCSAgIEdDRm9yZWdyb3VuZCwgJnhnY3YpOwotICAgIH0KLSAgdW5ibG9j a19pbnB1dCAoKTsKLQotICBpZiAoaSA8IDcpCi0gICAgewotICAgICAgYmxvY2tfaW5wdXQgKCk7 Ci0gICAgICBmb3IgKGktLTsgaSA+PSAwOyBpLS0pCi0JWEZyZWVHQyAoRlJBTUVfWF9ESVNQTEFZ IChmKSwgbmV3LT5nY3NbaV0pOwotICAgICAgdW5ibG9ja19pbnB1dCAoKTsKLSAgICAgIGlmIChw cmV2KQotCXByZXYtPm5leHQgPSBuZXctPm5leHQ7Ci0gICAgICBlbHNlIGlmIChkYXRhKQotCWZv bnRfcHV0X2ZyYW1lX2RhdGEgKGYsIFFmdHgsIG5ldy0+bmV4dCk7Ci0gICAgICB4ZnJlZSAobmV3 KTsKLSAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgcmV0dXJuIG5ldy0+Z2NzOwotfQotCi1z dGF0aWMgaW50Ci1mdHhmb250X2RyYXdfYml0bWFwIChzdHJ1Y3QgZnJhbWUgKmYsIEdDIGdjX2Zv cmUsIEdDICpnY3MsIHN0cnVjdCBmb250ICpmb250LAotICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IGNvZGUsIGludCB4LCBpbnQgeSwgWFBvaW50ICpwLCBpbnQgc2l6ZSwKLSAgICAg ICAgICAgICAgICAgICAgIGludCAqbiwgYm9vbCBmbHVzaCkKLXsKLSAgc3RydWN0IGZvbnRfYml0 bWFwIGJpdG1hcDsKLSAgdW5zaWduZWQgY2hhciAqYjsKLSAgaW50IGksIGo7Ci0KLSAgaWYgKGZ0 Zm9udF9nZXRfYml0bWFwIChmb250LCBjb2RlLCAmYml0bWFwLCBzaXplID4gMHgxMDAgPyAxIDog OCkgPCAwKQotICAgIHJldHVybiAwOwotICBpZiAoc2l6ZSA+IDB4MTAwKQotICAgIHsKLSAgICAg IGZvciAoaSA9IDAsIGIgPSBiaXRtYXAuYnVmZmVyOyBpIDwgYml0bWFwLnJvd3M7Ci0JICAgaSsr LCBiICs9IGJpdG1hcC5waXRjaCkKLQl7Ci0JICBmb3IgKGogPSAwOyBqIDwgYml0bWFwLndpZHRo OyBqKyspCi0JICAgIGlmIChiW2ogLyA4XSAmICgxIDw8ICg3IC0gKGogJSA4KSkpKQotCSAgICAg IHsKLQkJcFtuWzBdXS54ID0geCArIGJpdG1hcC5sZWZ0ICsgajsKLQkJcFtuWzBdXS55ID0geSAt IGJpdG1hcC50b3AgKyBpOwotCQlpZiAoKytuWzBdID09IHNpemUpCi0JCSAgewotICAgICAgICAg ICAgICAgICAgICBYRHJhd1BvaW50cyAoRlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfWF9EUkFX QUJMRSAoZiksCi0JCQkJIGdjX2ZvcmUsIHAsIHNpemUsIENvb3JkTW9kZU9yaWdpbik7Ci0JCSAg ICBuWzBdID0gMDsKLQkJICB9Ci0JICAgICAgfQotCX0KLSAgICAgIGlmIChmbHVzaCAmJiBuWzBd ID4gMCkKLSAgICAgICAgWERyYXdQb2ludHMgKEZSQU1FX1hfRElTUExBWSAoZiksIEZSQU1FX1hf RFJBV0FCTEUgKGYpLAotCQkgICAgIGdjX2ZvcmUsIHAsIG5bMF0sIENvb3JkTW9kZU9yaWdpbik7 Ci0gICAgfQotICBlbHNlCi0gICAgewotICAgICAgZm9yIChpID0gMCwgYiA9IGJpdG1hcC5idWZm ZXI7IGkgPCBiaXRtYXAucm93czsKLQkgICBpKyssIGIgKz0gYml0bWFwLnBpdGNoKQotCXsKLQkg IGZvciAoaiA9IDA7IGogPCBiaXRtYXAud2lkdGg7IGorKykKLQkgICAgewotCSAgICAgIGludCBp ZHggPSAoYml0bWFwLmJpdHNfcGVyX3BpeGVsID09IDEKLQkJCSA/ICgoYltqIC8gOF0gJiAoMSA8 PCAoNyAtIChqICUgOCkpKSkgPyA2IDogLTEpCi0JCQkgOiAoYltqXSA+PiA1KSAtIDEpOwotCi0J ICAgICAgaWYgKGlkeCA+PSAwKQotCQl7Ci0JCSAgWFBvaW50ICpwcCA9IHAgKyBzaXplICogaWR4 OwotCi0JCSAgcHBbbltpZHhdXS54ID0geCArIGJpdG1hcC5sZWZ0ICsgajsKLQkJICBwcFtuW2lk eF1dLnkgPSB5IC0gYml0bWFwLnRvcCArIGk7Ci0JCSAgaWYgKCsrKG5baWR4XSkgPT0gc2l6ZSkK LQkJICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICBYRHJhd1BvaW50cyAoRlJBTUVfWF9ESVNQ TEFZIChmKSwgRlJBTUVfWF9EUkFXQUJMRSAoZiksCi0JCQkJICAgaWR4ID09IDYgPyBnY19mb3Jl IDogZ2NzW2lkeF0sIHBwLCBzaXplLAotCQkJCSAgIENvb3JkTW9kZU9yaWdpbik7Ci0JCSAgICAg IG5baWR4XSA9IDA7Ci0JCSAgICB9Ci0JCX0KLQkgICAgfQotCX0KLSAgICAgIGlmIChmbHVzaCkK LQl7Ci0JICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKQotCSAgICBpZiAobltpXSA+IDApCi0gICAg ICAgICAgICAgIFhEcmF3UG9pbnRzIChGUkFNRV9YX0RJU1BMQVkgKGYpLCBGUkFNRV9YX0RSQVdB QkxFIChmKSwKLQkJCSAgIGdjc1tpXSwgcCArIDB4MTAwICogaSwgbltpXSwgQ29vcmRNb2RlT3Jp Z2luKTsKLQkgIGlmIChuWzZdID4gMCkKLSAgICAgICAgICAgIFhEcmF3UG9pbnRzIChGUkFNRV9Y X0RJU1BMQVkgKGYpLCBGUkFNRV9YX0RSQVdBQkxFIChmKSwKLQkJCSBnY19mb3JlLCBwICsgMHg2 MDAsIG5bNl0sIENvb3JkTW9kZU9yaWdpbik7Ci0JfQotICAgIH0KLQotICAvKiBUaGVyZSBpcyBu byBmdGZvbnRfZnJlZV9iaXRtYXAsIHNvIGRvIG5vdCB0cnkgdG8gZnJlZSBCSVRNQVAuICAqLwot Ci0gIHJldHVybiBiaXRtYXAuYWR2YW5jZTsKLX0KLQotc3RhdGljIHZvaWQKLWZ0eGZvbnRfZHJh d19iYWNrZ3JvdW5kIChzdHJ1Y3QgZnJhbWUgKmYsIHN0cnVjdCBmb250ICpmb250LCBHQyBnYywg aW50IHgsIGludCB5LAotCQkJIGludCB3aWR0aCkKLXsKLSAgWEdDVmFsdWVzIHhnY3Y7Ci0KLSAg WEdldEdDVmFsdWVzIChGUkFNRV9YX0RJU1BMQVkgKGYpLCBnYywKLQkJR0NGb3JlZ3JvdW5kIHwg R0NCYWNrZ3JvdW5kLCAmeGdjdik7Ci0gIFhTZXRGb3JlZ3JvdW5kIChGUkFNRV9YX0RJU1BMQVkg KGYpLCBnYywgeGdjdi5iYWNrZ3JvdW5kKTsKLSAgWEZpbGxSZWN0YW5nbGUgKEZSQU1FX1hfRElT UExBWSAoZiksIEZSQU1FX1hfRFJBV0FCTEUgKGYpLCBnYywKLQkJICB4LCB5IC0gRk9OVF9CQVNF IChmb250KSwgd2lkdGgsIEZPTlRfSEVJR0hUIChmb250KSk7Ci0gIFhTZXRGb3JlZ3JvdW5kIChG UkFNRV9YX0RJU1BMQVkgKGYpLCBnYywgeGdjdi5mb3JlZ3JvdW5kKTsKLX0KLQotc3RhdGljIExp c3BfT2JqZWN0Ci1mdHhmb250X2xpc3QgKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3Qgc3Bl YykKLXsKLSAgcmV0dXJuIGZ0Zm9udF9saXN0MiAoZiwgc3BlYywgUWZ0eCk7Ci19Ci0KLXN0YXRp YyBMaXNwX09iamVjdAotZnR4Zm9udF9tYXRjaCAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVj dCBzcGVjKQotewotICByZXR1cm4gZnRmb250X21hdGNoMiAoZiwgc3BlYywgUWZ0eCk7Ci19Ci0K LXN0YXRpYyBMaXNwX09iamVjdAotZnR4Zm9udF9vcGVuIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3Bf T2JqZWN0IGVudGl0eSwgaW50IHBpeGVsX3NpemUpCi17Ci0gIExpc3BfT2JqZWN0IGZvbnRfb2Jq ZWN0ID0gZnRmb250X29wZW4gKGYsIGVudGl0eSwgcGl4ZWxfc2l6ZSk7Ci0gIGlmIChOSUxQIChm b250X29iamVjdCkpCi0gICAgcmV0dXJuIFFuaWw7Ci0gIHN0cnVjdCBmb250ICpmb250ID0gWEZP TlRfT0JKRUNUIChmb250X29iamVjdCk7Ci0gIGZvbnQtPmRyaXZlciA9ICZmdHhmb250X2RyaXZl cjsKLSAgcmV0dXJuIGZvbnRfb2JqZWN0OwotfQotCi1zdGF0aWMgdm9pZAotZnR4Zm9udF9jbG9z ZSAoc3RydWN0IGZvbnQgKmZvbnQpCi17Ci0gIGZ0Zm9udF9jbG9zZSAoZm9udCk7Ci19Ci0KLXN0 YXRpYyBpbnQKLWZ0eGZvbnRfZHJhdyAoc3RydWN0IGdseXBoX3N0cmluZyAqcywgaW50IGZyb20s IGludCB0bywgaW50IHgsIGludCB5LAotICAgICAgICAgICAgICBib29sIHdpdGhfYmFja2dyb3Vu ZCkKLXsKLSAgc3RydWN0IGZyYW1lICpmID0gcy0+ZjsKLSAgc3RydWN0IGZhY2UgKmZhY2UgPSBz LT5mYWNlOwotICBzdHJ1Y3QgZm9udCAqZm9udCA9IHMtPmZvbnQ7Ci0gIFhQb2ludCBwWzB4NzAw XTsKLSAgaW50IG5bN107Ci0gIHVuc2lnbmVkICpjb2RlID0gcy0+Y2hhcjJiICsgZnJvbTsKLSAg aW50IGxlbiA9IHRvIC0gZnJvbTsKLSAgaW50IGk7Ci0gIEdDICpnY3M7Ci0gIGludCB4YWR2YW5j ZTsKLQotICBuWzBdID0gblsxXSA9IG5bMl0gPSBuWzNdID0gbls0XSA9IG5bNV0gPSBuWzZdID0g MDsKLQotICBibG9ja19pbnB1dCAoKTsKLSAgaWYgKHdpdGhfYmFja2dyb3VuZCkKLSAgICBmdHhm b250X2RyYXdfYmFja2dyb3VuZCAoZiwgZm9udCwgcy0+Z2MsIHgsIHksIHMtPndpZHRoKTsKLQot ICBpZiAoZmFjZS0+Z2MgPT0gcy0+Z2MpCi0gICAgewotICAgICAgZ2NzID0gZnR4Zm9udF9nZXRf Z2NzIChmLCBmYWNlLT5mb3JlZ3JvdW5kLCBmYWNlLT5iYWNrZ3JvdW5kKTsKLSAgICB9Ci0gIGVs c2UKLSAgICB7Ci0gICAgICBYR0NWYWx1ZXMgeGdjdjsKLSAgICAgIHVuc2lnbmVkIGxvbmcgbWFz ayA9IEdDRm9yZWdyb3VuZCB8IEdDQmFja2dyb3VuZDsKLQotICAgICAgWEdldEdDVmFsdWVzIChG UkFNRV9YX0RJU1BMQVkgKGYpLCBzLT5nYywgbWFzaywgJnhnY3YpOwotICAgICAgZ2NzID0gZnR4 Zm9udF9nZXRfZ2NzIChmLCB4Z2N2LmZvcmVncm91bmQsIHhnY3YuYmFja2dyb3VuZCk7Ci0gICAg fQotCi0gIGlmIChnY3MpCi0gICAgewotICAgICAgaWYgKHMtPm51bV9jbGlwcykKLQlmb3IgKGkg PSAwOyBpIDwgNjsgaSsrKQotCSAgWFNldENsaXBSZWN0YW5nbGVzIChGUkFNRV9YX0RJU1BMQVkg KGYpLCBnY3NbaV0sIDAsIDAsCi0JCQkgICAgICBzLT5jbGlwLCBzLT5udW1fY2xpcHMsIFVuc29y dGVkKTsKLQotICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQotCXsKLQkgIHhhZHZhbmNl ID0gZnR4Zm9udF9kcmF3X2JpdG1hcCAoZiwgcy0+Z2MsIGdjcywgZm9udCwgY29kZVtpXSwgeCwg eSwKLQkJCQkJICBwLCAweDEwMCwgbiwgaSArIDEgPT0gbGVuKTsKLQkgIHggKz0gKHMtPnBhZGRp bmdfcCA/IDEgOiB4YWR2YW5jZSk7Ci0JfQotICAgICAgaWYgKHMtPm51bV9jbGlwcykKLQlmb3Ig KGkgPSAwOyBpIDwgNjsgaSsrKQotCSAgWFNldENsaXBNYXNrIChGUkFNRV9YX0RJU1BMQVkgKGYp LCBnY3NbaV0sIE5vbmUpOwotICAgIH0KLSAgZWxzZQotICAgIHsKLSAgICAgIC8qIFdlIGNhbid0 IGRyYXcgd2l0aCBhbnRpYWxpYXNpbmcuCi0JIHMtPmdjIHNob3VsZCBhbHJlYWR5IGhhdmUgYSBw cm9wZXIgY2xpcHBpbmcgc2V0dGluZy4gKi8KLSAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkr KykKLQl7Ci0JICB4YWR2YW5jZSA9IGZ0eGZvbnRfZHJhd19iaXRtYXAgKGYsIHMtPmdjLCBOVUxM LCBmb250LCBjb2RlW2ldLCB4LCB5LAotCQkJCQkgIHAsIDB4NzAwLCBuLCBpICsgMSA9PSBsZW4p OwotCSAgeCArPSAocy0+cGFkZGluZ19wID8gMSA6IHhhZHZhbmNlKTsKLQl9Ci0gICAgfQotCi0g IHVuYmxvY2tfaW5wdXQgKCk7Ci0KLSAgcmV0dXJuIGxlbjsKLX0KLQotc3RhdGljIGludAotZnR4 Zm9udF9lbmRfZm9yX2ZyYW1lIChzdHJ1Y3QgZnJhbWUgKmYpCi17Ci0gIHN0cnVjdCBmdHhmb250 X2ZyYW1lX2RhdGEgKmRhdGEgPSBmb250X2dldF9mcmFtZV9kYXRhIChmLCBRZnR4KTsKLQotICBi bG9ja19pbnB1dCAoKTsKLSAgd2hpbGUgKGRhdGEpCi0gICAgewotICAgICAgc3RydWN0IGZ0eGZv bnRfZnJhbWVfZGF0YSAqbmV4dCA9IGRhdGEtPm5leHQ7Ci0gICAgICBpbnQgaTsKLQotICAgICAg Zm9yIChpID0gMDsgaSA8IDY7IGkrKykKLQlYRnJlZUdDIChGUkFNRV9YX0RJU1BMQVkgKGYpLCBk YXRhLT5nY3NbaV0pOwotICAgICAgeGZyZWUgKGRhdGEpOwotICAgICAgZGF0YSA9IG5leHQ7Ci0g ICAgfQotICB1bmJsb2NrX2lucHV0ICgpOwotICBmb250X3B1dF9mcmFtZV9kYXRhIChmLCBRZnR4 LCBOVUxMKTsKLSAgcmV0dXJuIDA7Ci19Ci0KLQwKLQotc3RhdGljIHZvaWQgc3ltc19vZl9mdHhm b250X2Zvcl9wZHVtcGVyICh2b2lkKTsKLQotc3RydWN0IGZvbnRfZHJpdmVyIGNvbnN0IGZ0eGZv bnRfZHJpdmVyID0KLSAgewotICAvKiBXZSBjYW4ndCBkcmF3IGEgdGV4dCB3aXRob3V0IGRldmlj ZSBkZXBlbmRlbnQgZnVuY3Rpb25zLiAgKi8KLSAgLnR5cGUgPSBMSVNQU1lNX0lOSVRJQUxMWSAo UWZ0eCksCi0gIC5nZXRfY2FjaGUgPSBmdGZvbnRfZ2V0X2NhY2hlLAotICAubGlzdCA9IGZ0eGZv bnRfbGlzdCwKLSAgLm1hdGNoID0gZnR4Zm9udF9tYXRjaCwKLSAgLmxpc3RfZmFtaWx5ID0gZnRm b250X2xpc3RfZmFtaWx5LAotICAub3Blbl9mb250ID0gZnR4Zm9udF9vcGVuLAotICAuY2xvc2Vf Zm9udCA9IGZ0eGZvbnRfY2xvc2UsCi0gIC5oYXNfY2hhciA9IGZ0Zm9udF9oYXNfY2hhciwKLSAg LmVuY29kZV9jaGFyID0gZnRmb250X2VuY29kZV9jaGFyLAotICAudGV4dF9leHRlbnRzID0gZnRm b250X3RleHRfZXh0ZW50cywKLSAgLmRyYXcgPSBmdHhmb250X2RyYXcsCi0gIC5nZXRfYml0bWFw ID0gZnRmb250X2dldF9iaXRtYXAsCi0gIC5hbmNob3JfcG9pbnQgPSBmdGZvbnRfYW5jaG9yX3Bv aW50LAotI2lmZGVmIEhBVkVfTElCT1RGCi0gIC5vdGZfY2FwYWJpbGl0eSA9IGZ0Zm9udF9vdGZf Y2FwYWJpbGl0eSwKLSNlbmRpZgotICAuZW5kX2Zvcl9mcmFtZSA9IGZ0eGZvbnRfZW5kX2Zvcl9m cmFtZSwKLSNpZiBkZWZpbmVkIEhBVkVfTTE3Tl9GTFQgJiYgZGVmaW5lZCBIQVZFX0xJQk9URgot ICAuc2hhcGUgPSBmdGZvbnRfc2hhcGUsCi0jZW5kaWYKLSNpZiBkZWZpbmVkIEhBVkVfT1RGX0dF VF9WQVJJQVRJT05fR0xZUEhTIHx8IGRlZmluZWQgSEFWRV9GVF9GQUNFX0dFVENIQVJWQVJJQU5U SU5ERVgKLSAgLmdldF92YXJpYXRpb25fZ2x5cGhzID0gZnRmb250X3ZhcmlhdGlvbl9nbHlwaHMs Ci0jZW5kaWYKLSAgLmZpbHRlcl9wcm9wZXJ0aWVzID0gZnRmb250X2ZpbHRlcl9wcm9wZXJ0aWVz LAotICAuY29tYmluaW5nX2NhcGFiaWxpdHkgPSBmdGZvbnRfY29tYmluaW5nX2NhcGFiaWxpdHks Ci0gIH07Ci0KLXZvaWQKLXN5bXNfb2ZfZnR4Zm9udCAodm9pZCkKLXsKLSAgREVGU1lNIChRZnR4 LCAiZnR4Iik7Ci0gIHBkdW1wZXJfZG9fbm93X2FuZF9hZnRlcl9sb2FkIChzeW1zX29mX2Z0eGZv bnRfZm9yX3BkdW1wZXIpOwotfQotCi1zdGF0aWMgdm9pZAotc3ltc19vZl9mdHhmb250X2Zvcl9w ZHVtcGVyICh2b2lkKQotewotICByZWdpc3Rlcl9mb250X2RyaXZlciAoJmZ0eGZvbnRfZHJpdmVy LCBOVUxMKTsKLX0KZGlmZiAtLWdpdCBhL3NyYy94Zm5zLmMgYi9zcmMveGZucy5jCmluZGV4IDIw ZTYzYTI2NTAuLjcyMTBiYmYyZGMgMTAwNjQ0Ci0tLSBhL3NyYy94Zm5zLmMKKysrIGIvc3JjL3hm bnMuYwpAQCAtMzg3OCw4ICszODc4LDYgQEAgREVGVU4gKCJ4LWNyZWF0ZS1mcmFtZSIsIEZ4X2Ny ZWF0ZV9mcmFtZSwgU3hfY3JlYXRlX2ZyYW1lLAogI2lmZGVmIEhBVkVfSEFSRkJVWloKICAgcmVn aXN0ZXJfZm9udF9kcml2ZXIgKCZ4ZnRoYmZvbnRfZHJpdmVyLCBmKTsKICNlbmRpZgotI2Vsc2UJ Lyogbm90IEhBVkVfWEZUICovCi0gIHJlZ2lzdGVyX2ZvbnRfZHJpdmVyICgmZnR4Zm9udF9kcml2 ZXIsIGYpOwogI2VuZGlmCS8qIG5vdCBIQVZFX1hGVCAqLwogI2VuZGlmCS8qIEhBVkVfRlJFRVRZ UEUgKi8KICNlbmRpZgkvKiBub3QgVVNFX0NBSVJPICovCkBAIC02MzYyLDggKzYzNjAsNiBAQCB4 X2NyZWF0ZV90aXBfZnJhbWUgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywgTGlzcF9P YmplY3QgcGFybXMpCiAjaWZkZWYgSEFWRV9IQVJGQlVaWgogICByZWdpc3Rlcl9mb250X2RyaXZl ciAoJnhmdGhiZm9udF9kcml2ZXIsIGYpOwogI2VuZGlmCi0jZWxzZQkvKiBub3QgSEFWRV9YRlQg Ki8KLSAgcmVnaXN0ZXJfZm9udF9kcml2ZXIgKCZmdHhmb250X2RyaXZlciwgZik7CiAjZW5kaWYJ Lyogbm90IEhBVkVfWEZUICovCiAjZW5kaWYJLyogSEFWRV9GUkVFVFlQRSAqLwogI2VuZGlmCS8q IG5vdCBVU0VfQ0FJUk8gKi8KLS0gCjIuMjAuMQoK --00000000000028117405943d7fb9--