From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Noah Peart Newsgroups: gmane.emacs.bugs Subject: bug#67809: [PATCH] Add font-locking for assignments in typescript-ts-mode Date: Wed, 13 Dec 2023 00:33:16 -0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000006d1e3e060c6005af" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25059"; mail-complaints-to="usenet@ciao.gmane.io" To: 67809@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Dec 13 09:34:08 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rDKgx-0006FX-2a for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 13 Dec 2023 09:34:07 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rDKgl-0005hi-Oc; Wed, 13 Dec 2023 03:33:55 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rDKge-0005UU-Pz for bug-gnu-emacs@gnu.org; Wed, 13 Dec 2023 03:33:51 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rDKgd-00004y-0M for bug-gnu-emacs@gnu.org; Wed, 13 Dec 2023 03:33:48 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rDKgs-0003wp-It for bug-gnu-emacs@gnu.org; Wed, 13 Dec 2023 03:34:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Noah Peart Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 13 Dec 2023 08:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 67809 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.170245643715162 (code B ref -1); Wed, 13 Dec 2023 08:34:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 13 Dec 2023 08:33:57 +0000 Original-Received: from localhost ([127.0.0.1]:58165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDKgm-0003wT-So for submit@debbugs.gnu.org; Wed, 13 Dec 2023 03:33:57 -0500 Original-Received: from lists.gnu.org ([2001:470:142::17]:32890) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rDKgj-0003w9-F7 for submit@debbugs.gnu.org; Wed, 13 Dec 2023 03:33:55 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rDKgN-0004Nl-TT for bug-gnu-emacs@gnu.org; Wed, 13 Dec 2023 03:33:31 -0500 Original-Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rDKgL-0008UK-Nv for bug-gnu-emacs@gnu.org; Wed, 13 Dec 2023 03:33:31 -0500 Original-Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-1eb39505ba4so3972602fac.0 for ; Wed, 13 Dec 2023 00:33:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702456408; x=1703061208; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Ha+acjWpv7RSZMTRZrAlXmW+WftexhsCBkNyp0fnHMw=; b=XU4W6UhzR4Db7W9kkPrgqUgIl3/7dnQxJxV3sM7ovc4Bc9gE7FV8Tw/x0QaaXv+Orl pPy2sv1gmUs7kXn639tQoqg8xc4h2WJK8IN1z0aJBcc9NS9QPhpHjF6yBYRpxVexM6oo CvlbWx5H9d5w3MOj3kTgy8AkKuwU03SX3aLPNhatXQsBEiBXKDrkl+8TejkEVOR+Fls+ jooVxkptbvr7vjbeG8/NxLl+u69mGS31ICTbwXU2vIcfjW5nhQxwSfo3u0mSgc7K10Z5 NIwJf9f8yOKbzT5Y7FHGBYzmT2Sq98Exg0Y4FhX8+YtTPHobX4b7I0BUykkp3lnFBmxb c80g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702456408; x=1703061208; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Ha+acjWpv7RSZMTRZrAlXmW+WftexhsCBkNyp0fnHMw=; b=Bw66zz4A3jdWJsCmB3EBivSi1cfU0TK7uNQoAXGIIt3oUHOk1//JinV2DXLG8Thsws S8jf/uUUfx8cgWdr55NKoDpshVYV8ZWrbblz2oZ3a21D1+bSJf+3hZhGrtqoAsVAtpmO DBw3U53eq+uXeu0VWhpQCBLcMX1FgIXSN9KH4nE88WX8UfQECJrYGynaIRN0vSWAt/H+ Qk1W3A5JTiZewls+HGZZbmtz65cjVwyIBBo5BKWdVu3lBTcxC9R6TWT/fVxb8kIO63I3 k0KF4hXJhFjJ7Ghv8XQWlVYcxiigw75KbPbSGUhHtTpth3qY8BOwbhssM39sIfH3wis3 +zSA== X-Gm-Message-State: AOJu0Yx1Zu2NG/Zk+t5E8Mc+O0063O6f/L9NITGYyjHGHLPgUWp/Lk08 PyDcdzhjHHPbJjdCwbpQ5tmtGzOHvXn/pMtEa2qM6JJYI7qjEMRa X-Google-Smtp-Source: AGHT+IFJ8hxcImc47bb4tBoj7Ad5Z21aQnEDSDaEj7wjRpLkbiWkF54K648Ub/+NIed4rPXJXGZ6dc7YwG77XL1PaIs= X-Received: by 2002:a05:6870:cb8b:b0:1f0:d96:8d9c with SMTP id ov11-20020a056870cb8b00b001f00d968d9cmr10623557oab.9.1702456407677; Wed, 13 Dec 2023 00:33:27 -0800 (PST) Received-SPF: pass client-ip=2001:4860:4864:20::2c; envelope-from=noah.v.peart@gmail.com; helo=mail-oa1-x2c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:276114 Archived-At: --0000000000006d1e3e060c6005af Content-Type: multipart/alternative; boundary="0000000000006d1e3d060c6005ad" --0000000000006d1e3d060c6005ad Content-Type: text/plain; charset="UTF-8" Tags: patch This patch adds fontification for the left-hand side of assignments in typescript-ts-mode. The object and/or property being assigned to is fontified with `font-lock-variable-name-face` and/or `font-lock-property-name-face`, while any other identifiers/properties on the left-hand side used in index expressions are fontified with `font-lock-variable-use-face`/`font-lock-property-use-face`. For example, fontification is added in `typescript-ts-mode` for identifiers in statements like the following: arr[obj.x * obj.x] = 1; //^ font-lock-variable-name-face // ^ font-lock-variable-use-face // ^ font-lock-property-use-face obj.x.y = 0; //^ font-lock-variable-name-face // ^ font-lock-property-name-face // ^ font-lock-property-name-face ++mat[x][arr[0]]; // ^ font-lock-variable-name-face // ^ font-lock-variable-use-face In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-12-12 built on noah-X580VD Repository revision: 75fd7550ed6cede6c9e8224f1f2d62637c43fdd4 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: Ubuntu 22.04.3 LTS Configured using: 'configure --prefix=/usr/local --with-modules --with-tree-sitter --with-threads --with-x-toolkit=gtk3 --with-xwidgets --with-gnutls --with-json --with-mailutils --with-jpeg --with-png --with-rsvg --with-tiff --with-xml2 --with-xpm --with-imagemagick CC=gcc-12 CXX=gcc-12' --0000000000006d1e3d060c6005ad Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Tags: patch


This patch adds fontification for t= he left-hand side of assignments in
typescript-ts-mode.

The objec= t and/or property being assigned to is fontified with
`font-lock-variabl= e-name-face` and/or `font-lock-property-name-face`,
while any other iden= tifiers/properties on the left-hand side used in
index expressions are f= ontified with
`font-lock-variable-use-face`/`font-lock-property-use-face= `.

For example, fontification is added in `typescript-ts-mode` foridentifiers in statements like the following:

=C2=A0 =C2=A0 arr[ob= j.x * obj.x] =3D 1;
=C2=A0 =C2=A0 //^ font-lock-variable-name-face
= =C2=A0 =C2=A0 //=C2=A0 =C2=A0 ^ font-lock-variable-use-face
=C2=A0 =C2= =A0 // =C2=A0 =C2=A0 =C2=A0^ font-lock-property-use-face
=C2=A0 =C2=A0 o= bj.x.y =3D 0;
=C2=A0 =C2=A0 //^ font-lock-variable-name-face
=C2=A0 = =C2=A0 // =C2=A0^ font-lock-property-name-face
=C2=A0 =C2=A0 // =C2=A0 = =C2=A0^ font-lock-property-name-face
=C2=A0 =C2=A0 ++mat[x][arr[0]];
= =C2=A0 =C2=A0 // ^ font-lock-variable-name-face
=C2=A0 =C2=A0 // =C2=A0 = =C2=A0 =C2=A0 =C2=A0^ font-lock-variable-use-face

In= GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.33, = cairo version 1.16.0) of 2023-12-12 built on noah-X580VD
Repository revi= sion: 75fd7550ed6cede6c9e8224f1f2d62637c43fdd4
Repository branch: master=
Windowing system distributor 'The X.Org Foundation', version 11= .0.12101004
System Description: Ubuntu 22.04.3 LTS

Configured usi= ng:
=C2=A0'configure --prefix=3D/usr/local --with-modules --with-tre= e-sitter
--with-threads --with-x-toolkit=3Dgtk3 --with-xwidgets --with-g= nutls
--with-json --with-mailutils --with-jpeg --with-png --with-rsvg--with-tiff --with-xml2 --with-xpm --with-imagemagick CC=3Dgcc-12
CXX= =3Dgcc-12'
--0000000000006d1e3d060c6005ad-- --0000000000006d1e3e060c6005af Content-Type: text/x-patch; charset="US-ASCII"; name="typescript-ts-fontify-assignments.patch" Content-Disposition: attachment; filename="typescript-ts-fontify-assignments.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lq3ijgyp0 RnJvbSAwYjhhNGFlNjZkMWRkY2MyODZjZjFiN2E1NGZiODI4OTRkY2IwYjlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIFBlYXJ0IDxub2FoLnYucGVhcnRAZ21haWwuY29tPgpE YXRlOiBXZWQsIDEzIERlYyAyMDIzIDAwOjEwOjE5IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gQWRk IGZvbnQtbG9ja2luZyBmb3IgYXNzaWdubWVudHMgaW4gdHlwZXNjcmlwdC10cy1tb2RlCgoqIGxp c3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS5lbAoodHlwZXNjcmlwdC10cy1tb2RlLS1m b250LWxvY2stc2V0dGluZ3MpOiBBZGQgZm9udC1sb2NraW5nIGZvcgpsZWZ0LWhhbmQgc2lkZSBv ZiBhc3NpZ25tZW50cy4KKHR5cGVzY3JpcHQtdHMtbW9kZS0tZm9udGlmeS1hc3NpZ25tZW50LWxo cyk6IE5ldyBmdW5jdGlvbiB0bwpmb250aWZ5IHR5cGVzY3JpcHQtdHMtbW9kZSBhc3NpZ25tZW50 cy4KKHR5cGVzY3JpcHQtdHMtbW9kZS0tYXNzaWdubWVudC1saHMtcXVlcnkpOiBBZGQgdHJlZS1z aXR0ZXIgcXVlcnkKdG8gY2FwdHVyZSBhc3NpZ25tZW50IG5vZGVzIGZvciBmb250LWxvY2tpbmcu CiogdGVzdC9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUtdGVzdHMuZWwKKHR5cGVz Y3JpcHQtdHMtbW9kZS10ZXN0LWZvbnQtbG9jayk6IE5ldyB0ZXN0IGZvciBmb250LWxvY2tpbmcg aW4KdHlwZXNjcmlwdC10cy1tb2RlLgoqIHRlc3QvbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlwdC10 cy1tb2RlLXJlc291cmNlcy9mb250LWxvY2sudHM6Ck5ldyBmaWxlIHdpdGggZm9udC1sb2NrIHRl c3RzIGZvciB0eXBlc2NyaXB0LXRzLW1vZGUuCi0tLQogbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlw dC10cy1tb2RlLmVsICAgICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrLQogLi4uL3R5cGVz Y3JpcHQtdHMtbW9kZS1yZXNvdXJjZXMvZm9udC1sb2NrLnRzIHwgNTAgKysrKysrKysrKysrKysr KysrCiAuLi4vcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS10ZXN0cy5lbCAgICAgfCAgNiAr KysKIDMgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS1y ZXNvdXJjZXMvZm9udC1sb2NrLnRzCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvdHlwZXNj cmlwdC10cy1tb2RlLmVsIGIvbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlwdC10cy1tb2RlLmVsCmlu ZGV4IDdmMGI3MjM2MzAxLi44YzMzNzBkZGM5MyAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMv dHlwZXNjcmlwdC10cy1tb2RlLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMt bW9kZS5lbApAQCAtMTk5LDYgKzE5OSwzOCBAQCB0c3gtdHMtbW9kZS0tZm9udC1sb2NrLWNvbXBh dGliaWxpdHktYmIxZjk3YgogCSAgICAgIFsobmVzdGVkX2lkZW50aWZpZXIgKGlkZW50aWZpZXIp KSAoaWRlbnRpZmllcildCiAJICAgICAgQHR5cGVzY3JpcHQtdHMtanN4LXRhZy1mYWNlKSkpKSkK IAorKGRlZnZhciB0eXBlc2NyaXB0LXRzLW1vZGUtLWFzc2lnbm1lbnQtbGhzLXF1ZXJ5CisgICh3 aGVuICh0cmVlc2l0LWF2YWlsYWJsZS1wKQorICAgICh0cmVlc2l0LXF1ZXJ5LWNvbXBpbGUKKyAg ICAgJ3R5cGVzY3JpcHQKKyAgICAgJygoc3Vic2NyaXB0X2V4cHJlc3Npb24gb2JqZWN0OiAoaWRl bnRpZmllcikgQGlkKQorICAgICAgIChzdWJzY3JpcHRfZXhwcmVzc2lvbiBpbmRleDogKGlkZW50 aWZpZXIpIEBpbmRleCkKKyAgICAgICAobWVtYmVyX2V4cHJlc3Npb24gb2JqZWN0OiAoaWRlbnRp ZmllcikgQGlkKQorICAgICAgIChtZW1iZXJfZXhwcmVzc2lvbiBwcm9wZXJ0eTogKHByb3BlcnR5 X2lkZW50aWZpZXIpIEBwcm9wZXJ0eSkpKSkKKyAgIlF1ZXJ5IHRoYXQgY2FwdHVyZXMgb2JqZWN0 LCBpbmRleCwgYW5kIHByb3BlcnR5IGlkZW50aWZpZXJzLiIpCisKKyhkZWZ1biB0eXBlc2NyaXB0 LXRzLW1vZGUtLWZvbnRpZnktYXNzaWdubWVudC1saHMgKG5vZGUgb3ZlcnJpZGUgc3RhcnQgZW5k ICZyZXN0IF8pCisgICJGb250aWZ5IHRoZSBsaHMgTk9ERSBvZiBhbiBhc3NpZ25tZW50X2V4cHJl c3Npb24uCitGb3IgT1ZFUlJJREUsIFNUQVJULCBFTkQsIHNlZSBgdHJlZXNpdC1mb250LWxvY2st cnVsZXMnLiIKKyAgOzsgd2hlbiBJTkRFWCA+IDEsIGFwcGx5IGAtKnVzZS1mYWNlJyB0byBpZGVu dGlmaWVycy9wcm9wZXJ0aWVzCisgIChsZXQgKChpbmRleCAwKSkKKyAgICAocGNhc2UtZG9saXN0 IChgKCxuYW1lIC4gLG5vZGUpCisgICAgICAgICAgICAgICAgICAgKHRyZWVzaXQtcXVlcnktY2Fw dHVyZQorICAgICAgICAgICAgICAgICAgICBub2RlIHR5cGVzY3JpcHQtdHMtbW9kZS0tYXNzaWdu bWVudC1saHMtcXVlcnkpKQorICAgICAgKHRyZWVzaXQtZm9udGlmeS13aXRoLW92ZXJyaWRlCisg ICAgICAgKHRyZWVzaXQtbm9kZS1zdGFydCBub2RlKSAodHJlZXNpdC1ub2RlLWVuZCBub2RlKQor ICAgICAgIChwY2FzZSBuYW1lCisgICAgICAgICAoJ2lkIChwcm9nMSAoaWYgKHplcm9wIGluZGV4 KQorICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNl CisgICAgICAgICAgICAgICAgICAgICAgICdmb250LWxvY2stdmFyaWFibGUtdXNlLWZhY2UpCisg ICAgICAgICAgICAgICAgKGNsLWluY2YgaW5kZXgpKSkKKyAgICAgICAgICgncHJvcGVydHkgKGlm ICg9IDEgaW5kZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1sb2NrLXByb3BlcnR5 LW5hbWUtZmFjZQorICAgICAgICAgICAgICAgICAgICAgICdmb250LWxvY2stcHJvcGVydHktdXNl LWZhY2UpKQorICAgICAgICAgKCdpbmRleCAnZm9udC1sb2NrLXZhcmlhYmxlLXVzZS1mYWNlKQor ICAgICAgICAgKF8gbmlsKSkKKyAgICAgICBvdmVycmlkZSBzdGFydCBlbmQpKSkpCisKIChkZWZ1 biB0eXBlc2NyaXB0LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncyAobGFuZ3VhZ2UpCiAgICJU cmVlLXNpdHRlciBmb250LWxvY2sgc2V0dGluZ3MuCiBBcmd1bWVudCBMQU5HVUFHRSBpcyBlaXRo ZXIgYHR5cGVzY3JpcHQnIG9yIGB0c3gnLiIKQEAgLTMxNCw2ICszNDYsOCBAQCB0eXBlc2NyaXB0 LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncwogICAgOmZlYXR1cmUgJ3Byb3BlcnR5CiAgICBg KChwcm9wZXJ0eV9zaWduYXR1cmUKICAgICAgIG5hbWU6IChwcm9wZXJ0eV9pZGVudGlmaWVyKSBA Zm9udC1sb2NrLXByb3BlcnR5LW5hbWUtZmFjZSkKKyAgICAgKGluZGV4X3NpZ25hdHVyZQorICAg ICAgbmFtZTogKGlkZW50aWZpZXIpIEBmb250LWxvY2stcHJvcGVydHktbmFtZS1mYWNlKQogICAg ICAocHVibGljX2ZpZWxkX2RlZmluaXRpb24KICAgICAgIG5hbWU6IChwcm9wZXJ0eV9pZGVudGlm aWVyKSBAZm9udC1sb2NrLXByb3BlcnR5LW5hbWUtZmFjZSkKIApAQCAtMzUzLDYgKzM4NywyMSBA QCB0eXBlc2NyaXB0LXRzLW1vZGUtLWZvbnQtbG9jay1zZXR0aW5ncwogICAgKGFwcGVuZCAodHN4 LXRzLW1vZGUtLWZvbnQtbG9jay1jb21wYXRpYmlsaXR5LWJiMWY5N2IgbGFuZ3VhZ2UpCiAJICAg YCgoanN4X2F0dHJpYnV0ZSAocHJvcGVydHlfaWRlbnRpZmllcikgQHR5cGVzY3JpcHQtdHMtanN4 LWF0dHJpYnV0ZS1mYWNlKSkpCiAKKyAgIDpsYW5ndWFnZSBsYW5ndWFnZQorICAgOmZlYXR1cmUg J2Fzc2lnbm1lbnQKKyAgICcoKGFzc2lnbm1lbnRfZXhwcmVzc2lvbgorICAgICAgbGVmdDogKGlk ZW50aWZpZXIpIEBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlKQorICAgICAoYXNzaWdubWVu dF9leHByZXNzaW9uCisgICAgICBsZWZ0OiAoXykgQHR5cGVzY3JpcHQtdHMtbW9kZS0tZm9udGlm eS1hc3NpZ25tZW50LWxocykKKyAgICAgKGF1Z21lbnRlZF9hc3NpZ25tZW50X2V4cHJlc3Npb24K KyAgICAgIGxlZnQ6IChpZGVudGlmaWVyKSBAZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkK KyAgICAgKGF1Z21lbnRlZF9hc3NpZ25tZW50X2V4cHJlc3Npb24KKyAgICAgIGxlZnQ6IChfKSBA dHlwZXNjcmlwdC10cy1tb2RlLS1mb250aWZ5LWFzc2lnbm1lbnQtbGhzKQorICAgICAodXBkYXRl X2V4cHJlc3Npb24KKyAgICAgIGFyZ3VtZW50OiAoaWRlbnRpZmllcikgQGZvbnQtbG9jay12YXJp YWJsZS1uYW1lLWZhY2UpCisgICAgICh1cGRhdGVfZXhwcmVzc2lvbgorICAgICAgYXJndW1lbnQ6 IChfKSBAdHlwZXNjcmlwdC10cy1tb2RlLS1mb250aWZ5LWFzc2lnbm1lbnQtbGhzKSkKKwogICAg Omxhbmd1YWdlIGxhbmd1YWdlCiAgICA6ZmVhdHVyZSAnbnVtYmVyCiAgICBgKChudW1iZXIpIEBm b250LWxvY2stbnVtYmVyLWZhY2UKQEAgLTQ4Niw3ICs1MzUsNyBAQCB0eXBlc2NyaXB0LXRzLW1v ZGUKICAgICAgICAgICAgICAgICAnKChjb21tZW50IGRlY2xhcmF0aW9uKQogICAgICAgICAgICAg ICAgICAgKGtleXdvcmQgc3RyaW5nIGVzY2FwZS1zZXF1ZW5jZSkKICAgICAgICAgICAgICAgICAg IChjb25zdGFudCBleHByZXNzaW9uIGlkZW50aWZpZXIgbnVtYmVyIHBhdHRlcm4gcHJvcGVydHkp Ci0gICAgICAgICAgICAgICAgICAob3BlcmF0b3IgZnVuY3Rpb24gYnJhY2tldCBkZWxpbWl0ZXIp KSkKKyAgICAgICAgICAgICAgICAgIChhc3NpZ25tZW50IG9wZXJhdG9yIGZ1bmN0aW9uIGJyYWNr ZXQgZGVsaW1pdGVyKSkpCiAgICAgKHNldHEtbG9jYWwgc3ludGF4LXByb3BlcnRpemUtZnVuY3Rp b24gIyd0eXBlc2NyaXB0LXRzLS1zeW50YXgtcHJvcGVydGl6ZSkKIAogICAgICh0cmVlc2l0LW1h am9yLW1vZGUtc2V0dXApKSkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvdHlwZXNj cmlwdC10cy1tb2RlLXJlc291cmNlcy9mb250LWxvY2sudHMgYi90ZXN0L2xpc3AvcHJvZ21vZGVz L3R5cGVzY3JpcHQtdHMtbW9kZS1yZXNvdXJjZXMvZm9udC1sb2NrLnRzCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mOTY4MDg4NmM1NwotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3QvbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlwdC10cy1tb2RlLXJlc291cmNlcy9mb250LWxv Y2sudHMKQEAgLTAsMCArMSw1MCBAQAorLy8gVGVzdCBhc3NpZ25tZW50IGxlZnQtaGFuZCBzaWRl IGZvbnRpZmljYXRpb24KK2NvbnN0IGFzc2lnbm1lbnQgPSAoKTogbnVtYmVyID0+IHsKKyAgLy8g IF4gZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFjZQorICAvLyAgICAgICAgICAgICAgICAgICBe IGZvbnQtbG9jay10eXBlLWZhY2UKKyAgbGV0IGZvbyA9IDA7CisgIC8vICAgXiBmb250LWxvY2st dmFyaWFibGUtbmFtZS1mYWNlCisgIGZvbyArPSAxOworICAvL14gZm9udC1sb2NrLXZhcmlhYmxl LW5hbWUtZmFjZQorICBsZXQgb2JqOiB7W2tleTogc3RyaW5nXTogYW55fSA9IHt9OworICAvLyAg XiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCisgIC8vICAgICAgICAgIF4gZm9udC1sb2Nr LXByb3BlcnR5LW5hbWUtZmFjZQorICAvLyAgICAgICAgICAgICAgICBeIGZvbnQtbG9jay10eXBl LWZhY2UKKyAgLy8gICAgICAgICAgICAgICAgICAgICAgICBeIGZvbnQtbG9jay10eXBlLWZhY2UK KyAgb2JqLngueSA9IDA7CisgIC8vXiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCisgIC8v ICBeIGZvbnQtbG9jay1wcm9wZXJ0eS1uYW1lLWZhY2UKKyAgLy8gICAgXiBmb250LWxvY2stcHJv cGVydHktbmFtZS1mYWNlCisgICsrb2JqLngrKzsKKyAgLy8gXiBmb250LWxvY2stdmFyaWFibGUt bmFtZS1mYWNlCisgIC8vICAgIF4gZm9udC1sb2NrLXByb3BlcnR5LW5hbWUtZmFjZQorICBhcnJb b2JqLnggKiBvYmoueF0gPSAxOworICAvL14gZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZQor ICAvLyAgIF4gZm9udC1sb2NrLXZhcmlhYmxlLXVzZS1mYWNlCisgIC8vICAgICAgXiBmb250LWxv Y2stcHJvcGVydHktdXNlLWZhY2UKKyAgbGV0IHggPSAwLCB5ID0gMCwgYXJyID0gWzAsMF0sIG1h dCA9IFtbMF0sWzBdXTsKKyAgWyB4LCB5XSA9IFt5LCB4XTsKKyAgLy9eIGZvbnQtbG9jay12YXJp YWJsZS1uYW1lLWZhY2UKKyAgLy8gICBeIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UKKyAg aWYgKCh4ID0gMSkpIHgrKzsKKyAgLy8gICBeIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UK KyAgLy8gICAgICAgICAgIF4gZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZQorICBhcnJbYXJy WzBdXSA9IDI7CisgIC8vXiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCisgIC8vICAgXiBm b250LWxvY2stdmFyaWFibGUtdXNlLWZhY2UKKyAgLy8gICAgICBeIGZvbnQtbG9jay1udW1iZXIt ZmFjZQorICArK21hdFt4XVthcnJbMF1dOworICAvLyBeIGZvbnQtbG9jay12YXJpYWJsZS1uYW1l LWZhY2UKKyAgLy8gICAgICAgIF4gZm9udC1sb2NrLXZhcmlhYmxlLXVzZS1mYWNlCisgIG1hdFtt YXRbYXJyW2FycltvYmoueF1dXVt4XV1bYXJyWzBdXSA9IDI7CisgIC8vXiBmb250LWxvY2stdmFy aWFibGUtbmFtZS1mYWNlCisgIC8vICAgXiBmb250LWxvY2stdmFyaWFibGUtdXNlLWZhY2UKKyAg Ly8gICAgICAgXiBmb250LWxvY2stdmFyaWFibGUtdXNlLWZhY2UKKyAgLy8gICAgICAgICAgIF4g Zm9udC1sb2NrLXZhcmlhYmxlLXVzZS1mYWNlCisgIC8vICAgICAgICAgICAgICAgXiBmb250LWxv Y2stdmFyaWFibGUtdXNlLWZhY2UKKyAgLy8gICAgICAgICAgICAgICAgICBeIGZvbnQtbG9jay1w cm9wZXJ0eS11c2UtZmFjZQorICAvLyAgICAgICAgICAgICAgICAgICAgICAgXiBmb250LWxvY2st dmFyaWFibGUtdXNlLWZhY2UKKyAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgXiBmb250 LWxvY2stdmFyaWFibGUtdXNlLWZhY2UKKyAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXiBmb250LWxvY2stbnVtYmVyLWZhY2UKKyAgcmV0dXJuIDA7Cit9OwpkaWZmIC0tZ2l0IGEv dGVzdC9saXNwL3Byb2dtb2Rlcy90eXBlc2NyaXB0LXRzLW1vZGUtdGVzdHMuZWwgYi90ZXN0L2xp c3AvcHJvZ21vZGVzL3R5cGVzY3JpcHQtdHMtbW9kZS10ZXN0cy5lbAppbmRleCAxMjZmNWUzMjk4 Zi4uZDQyNmM0ZTUwZWIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlw dC10cy1tb2RlLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvdHlwZXNjcmlwdC10 cy1tb2RlLXRlc3RzLmVsCkBAIC0yNyw1ICsyNywxMSBAQCB0eXBlc2NyaXB0LXRzLW1vZGUtdGVz dC1pbmRlbnRhdGlvbgogICAoc2tpcC11bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAndHlwZXNjcmlw dCkpCiAgIChlcnQtdGVzdC1lcnRzLWZpbGUgKGVydC1yZXNvdXJjZS1maWxlICJpbmRlbnQuZXJ0 cyIpKSkKIAorKGVydC1kZWZ0ZXN0IHR5cGVzY3JpcHQtdHMtbW9kZS10ZXN0LWZvbnQtbG9jayAo KQorICAoc2tpcC11bmxlc3MgKHRyZWVzaXQtcmVhZHktcCAndHlwZXNjcmlwdCkpCisgIChsZXQg KCh0cmVlc2l0LWZvbnQtbG9jay1sZXZlbCA0KSkKKyAgICAoZXJ0LWZvbnQtbG9jay10ZXN0LWZp bGUKKyAgICAgKGVydC1yZXNvdXJjZS1maWxlICJmb250LWxvY2sudHMiKSAndHlwZXNjcmlwdC10 cy1tb2RlKSkpCisKIChwcm92aWRlICd0eXBlc2NyaXB0LXRzLW1vZGUtdGVzdHMpCiA7OzsgdHlw ZXNjcmlwdC10cy1tb2RlLXRlc3RzLmVsIGVuZHMgaGVyZQotLSAKMi4zNC4xCgo= --0000000000006d1e3e060c6005af--