From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/110505 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Mahoney Newsgroups: gmane.comp.tex.context Subject: Re: composing commands Date: Tue, 09 Feb 2021 10:42:46 +1300 Organization: Indica et Buddhica Message-ID: References: <725a4491-daaa-df10-2b3c-d784c232701d@uni-bonn.de> Reply-To: Richard Mahoney , mailing list for ConTeXt users Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7664263633413290555==" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19334"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.36.5 To: ntg-context@ntg.nl Original-X-From: ntg-context-bounces@ntg.nl Mon Feb 08 22:45:25 2021 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane-mx.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l9ELT-0004o3-1w for gctc-ntg-context-518@m.gmane-mx.org; Mon, 08 Feb 2021 22:45:23 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id A797528055E; Mon, 8 Feb 2021 22:44:55 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jmotE6-khzlX; Mon, 8 Feb 2021 22:44:53 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id AFE80280573; Mon, 8 Feb 2021 22:44:53 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 46D0228053D for ; Mon, 8 Feb 2021 22:44:53 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Jwc259Sxqfgl for ; Mon, 8 Feb 2021 22:44:52 +0100 (CET) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=103.2.142.21; helo=e2i533.smtp2go.com; envelope-from=bt.xm7zzznp30=ilkk9wg4hkm9=5o8ws0ce9o@em110947.indica-et-buddhica.org; receiver= Original-Received: from e2i533.smtp2go.com (e2i533.smtp2go.com [103.2.142.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id DF68228052E for ; Mon, 8 Feb 2021 22:44:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpcorp.com; s=a1-4; h=Feedback-ID:X-Smtpcorp-Track:Date:To:Reply-To:From: Subject:Message-ID:Sender:List-Unsubscribe; bh=oz00dsv27z4XP8ItyB07daNZke0BbYEVd+JL5QMpb7k=; b=EqndSenrLbebF4ZT2DjAk04rjE p5fePYrjAFLyVvAjL5u52Sf4/RgWLEJImlxEx/THgmnqbG65pZvqSwnbfjXued45ryHCLMSFV/SKE 5T7jxeUYaKwikqVft5HwmKCaUniJ5bFXS9oCUKNkAko13xbMEFaRQg+9PNvIN090yxkoQDWk5erGR SDvs974O2cMcDaAOWAmCU6bDD2+rCr8oVw3MnSP/vXNhFbxVkQ131V5IF2b72rKL6OmldozV1eC97 YEVlPEBgdsr98Kgb0mwri55nllmpAv2W0tUzOCfTrW4nAJGGJvsYkA2YCMiBLXG/7iL/6TT38Xig+ nzWEgpsA==; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=indica-et-buddhica.org; i=@indica-et-buddhica.org; q=dns/txt; s=s110947; t=1612820692; h=from : subject : to : message-id : date; bh=oz00dsv27z4XP8ItyB07daNZke0BbYEVd+JL5QMpb7k=; b=VcvgJFyTy7OOwd0UqH8QEvpIdqFvQ6hjzaG/mvk1NoHJd7MGM9HfPL7ATVE9YdZj7UroI 4kA8oV0uPWH5bNlE1KXvWbrXlTSHnSyXWk43W9wz6hlgyt9iQmTZTWf62AexqIl48XooZOy gYySHhvG1Db+dLPVV+UCDzbzd8CIuBvnG18WuZcLCObxfcWo7q5LXwXuzf/FDuKdxS/W7gL B9JEfmtGqPwfmWzXmFQCf1Dfo5Dzdq5kknSKdrq9Qoepu78cle5w7Kl1uJTSuSYFp2DZ08c NEt+IW0E2ZDz+wnhHnF5xvILKKEAFKol4j9XuQc4DgxYfhqChcYg4TP55d1w== Original-Received: from [10.139.162.6] (helo=SmtpCorp) by smtpcorp.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92-S2G) (envelope-from ) id 1l9EKw-qt4JAg-EA for ntg-context@ntg.nl; Mon, 08 Feb 2021 21:44:50 +0000 Original-Received: from [10.203.96.209] (helo=ieb-01000-hp-8570w.localdomain) by smtpcorp.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92-S2G) (envelope-from ) id 1l9EKt-NIFAKG-IC for ntg-context@ntg.nl; Mon, 08 Feb 2021 21:44:48 +0000 Original-Received: by ieb-01000-hp-8570w.localdomain (Postfix, from userid 1000) id 0501713D4025; Tue, 9 Feb 2021 10:43:25 +1300 (NZDT) In-Reply-To: X-Smtpcorp-Track: 1_9EKtNmFjKGmC.mQDOmjGs921aP Feedback-ID: 110947m:110947aJu5aPi:110947sP2HpbPTgT X-Report-Abuse: Please forward a copy of this message, including all headers, to X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.26 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.io gmane.comp.tex.context:110505 Archived-At: --===============7664263633413290555== Content-Type: multipart/alternative; boundary="=-8J+fAEQx5UVR8ddcGipo" --=-8J+fAEQx5UVR8ddcGipo Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hans, For me, at least, having these covered would be useful: acute =C3=A1 double acute =C5=91 grave =C3=A0 double grave =C8=8D circumflex =C3=A2 circumflex below =E1=B8=99 diaeresis =C3=A4 tilde =C3=A3 tilde below =E1=B8=AD macron =C4=81 line below =E1=B8=B5 cedilla =C3=A7 comma below =C5=9F hook =C8=A5 ring above =C3=A5 ring below =E1=B8=81 dot above =E1=B9=81 middle dot =C5=80 dot below =E1=B9=83 breve =C4=83 inverted breve =C8=83 caron =C7=A9 stroke =C3=B8 Best, Richard =20 -----Original Message----- From: Hans Hagen Reply-To: mailing list for ConTeXt users To: mailing list for ConTeXt users , T. Kurt Bond Cc: Thomas A. Schmitz Subject: Re: [NTG-context] composing commands Date: Mon, 8 Feb 2021 10:53:01 +0100 Mailer: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 X-Spam-Score: 0.0 On 2/6/2021 11:41 PM, T. Kurt Bond wrote: > I think that it would be useful. I use Unicode characters > extensively in my ConTeXt input, but only because I edit it in Emacs > and can set up keymaps that map to the Unicode characters in a way > that I can actually remember. I think that this would add an easily > remembered way for people to add combining characters to their > documents. Sometimes a slightly more verbose way to do something is > helpful when it is more easily remembered. (Honestly, I can't > remember the hex codes for any Unicode characters after you get out > of the range that maps to plain ASCII I anyway uprgade this mechanism. First of all, the short commands will be equivalents to more verbose ones. \withgrave {a} =3D=3D \\`{a}\withacute {a} =3D=3D \\'{a}\withcircumflex {a} =3D=3D \\^{a}\withtilde {a} =3D=3D \\~{a}\withmacron {a} =3D=3D \\=3D{a}\withbreve {e} =3D=3D \\u{e}\withdot {c} =3D=3D \\.{c}\withdieresis {e} =3D=3D \\"{e}\withring {u} =3D=3D \\r{u}\withhungarumlaut{u} =3D=3D \\H{u}\withcaron {e} =3D=3D \\v{e}\withcedilla {e} =3D=3D \\c{e}\withogonek {e} =3D=3D \\k{e} Did I miss one? Then we can deprecate the short ones (keep them a low profile, with permission to overload). After all, I don't expect someone who needs lots of them to use these commands, so more verbose is better then. Aas I already mentioned, in bib files they are treated differently already. The low level helper is \chr, that can be used as \chr {a=CC=80} \chr {a=CC=81} \chr {a=CC=88}\chr {`a} \chr {'a} \chr {"a}\c= hr {a acute} \chr {a grave} \chr {a umlaut}\chr {aacute} \chr {agrave} \chr {aumlaut} (I can add more of the verbose, like {cyrillic a} if really needed. It means that we can declare \eacute etc also depricated (these verbose names date from \MKII, encoding neutral labels, utf handling, remapping to backend encodings etc but we don't need that and I'm not sure if anyone ever used those long names. Again, depricated, not removed (yet).) Then there is the question what to do with \AE and \ij and such ... these were used to enforce specific ligatures into a file assuming that f ont has them but nowadays that's the job of a font handler (script language control). We can keep them but assume them legacy. They normally don't belong in input. (Being Dutch I actually never used \IJ or \ij). Now, we can assume that when your languages needs characters with accents that you use a font that has them. In MKIV and LMTX one canenable a checker \enabletrackers[fonts.missing]\enabletrackers[fonts.missing=3Dreplace]\e nabletrackers[fonts.missing=3Dremove] but in LMTX it's upgraded with more clever replacements (Jano will document that + more about checking missing stuff in the wiki). So, in LMTX we have more options (maybe I'll backport that to MKIV) \checkmissingcharacters \enabletrackers[fonts.missing]\removemissing characters \enabletrackers[fonts.missing=3Dremove]\replacemissingcharac ters \enabletrackers[fonts.missing=3Dreplace]\handlemissingcharacters \enabl etrackers[fonts.missing=3D{decompose,replace}] the last one will inject decomposed characters into the list when font lacks the real thing. The replacements visualize similar to MKIV but adapt to the style. Hans (no upload yet) --------------------------------------------------------------- -- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl |=20 www.pragma-pod.nl --------------------------------------------------------------- -- ______________________________________________________________________ _____________If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl /=20 http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ______________________________________________________________________ _____________ --=20 T +6433121699 M +64210640216 E rmahoney@indica-et-buddhica.org IM https://t.me/rmahoney W https://indica-et-buddhica.org/ Indica et Buddhica Littledene Bay Road Oxford NZ --=-8J+fAEQx5UVR8ddcGipo Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable
Hans,

For=20= me,=20at=20least,=20having=20these=20covered=20would=20be=20useful:

 =20 acute=20 =20 =20=C3=A1
   double=20acute=20 =20 =20=C5=91
&nbs= p;  grave=20 =20 =20=C3=A0
   = double=20grave=20 =20 =20=C8=8D
   circu= mflex=20 =20 =20=C3=A2
   circumflex=20b= elow=20 =20 =20=E1=B8=99
   diaeresis=20=  =20 =20=C3=A4
   tilde=20 =20 = ;=20=C3=A3
   tilde=20below=20 =20 =20= =E1=B8=AD
   macron=20 =20 =20=C4=81
   line=20below=20 =20 =20=E1=B8=B5
   cedilla=20 =20 =20=C3=A7
 &nb= sp; comma=20below=20 =20 =20=C5=9F
  &nb= sp;hook=20 =20 =20=C8=A5
   ring=20above= =20 =20 =20=C3=A5
   ring=20below=20&nbs= p;=20 =20=E1=B8=81
   dot=20above=20 =20=  =20=E1=B9=81
   middle=20dot=20 =20&nbs= p;=20=C5=80
   dot=20below=20 =20 =20=E1= =B9=83
   breve=20 =20 =20=C4=83
   inverted=20breve=20 =20 =20=C8=83
=    caron=20 =20 =20=C7=A9
  &n= bsp;stroke=20 =20 =20=C3=B8



Best,=20Richard=20 




--=20
<= b>T=20+6433121699  M=20+64210640216  E=20rmahoney@indica-et= -buddhica.org
IM=20https://t.me/rmahoney  W=20https://indica-et-buddhica.org/
=

Indica=20et=20Buddhica  Li= ttledene  Bay=20Road  Oxford  NZ
<= /span>

-----Original=20Message-----
F= rom:=20Hans=20Hagen=20<j.hagen@xs4all.nl>
Reply-To:=20maili= ng=20list=20for=20ConTeXt=20users=20<ntg-context@ntg.nl&= gt;
To:=20mailing=20list=20for=20ConTeXt=20users=20<ntg-context@ntg.nl>,=20T.=20Kurt=20Bond=20<tkurtbond@gmail= .com>
Cc:=20Thomas=20A.=20Schmitz=20<= thomas.schmitz@uni-bonn.de>
Subject:=20Re:=20[NTG-c= ontext]=20composing=20commands
Date:=20Mon,=208=20Feb=2020= 21=2010:53:01=20+0100
Mailer:=20Mozilla/5.0=20(Windows=20N= T=2010.0;=20Win64;=20x64;=20rv:78.0)=20Gecko/20100101 =20Thunderbird/78.7.1
X-Spam-Score:=200.0

On=202/6/2021=2011:41=20PM,=20T.=20Kurt=20Bond=20wrote:

I=20think=20that=20it=20=
would=20be=20useful. =20I=20use=20Unicode=20characters=20extensively=
=20
in=20my=20ConTeXt=20input,=20but=20only=20because=20I=20edit=
=20it=20in=20Emacs=20and=20can=20set=20up=20
keymaps=20that =
map=20to=20the=20Unicode=20characters=20in=20a=20way=20that=20I=20can=20act=
ually=20
remember. =20I=20think=20that=20this=20would=20add=
=20an=20easily=20remembered=20way=20for=20
people=20to=20add=20co=
mbining=20characters=20to=20their=20documents. =20Sometimes=20a=20
slightly more=20verbose=20way=20to=20do=20something=20is=20help=
ful=20when=20it=20is=20more=20
easily=20remembered. =20(Hone=
stly,=20I=20can't=20remember=20the=20hex=20codes=20for=20any=20
U=
nicode=20characters=20after=20you=20get=20out=20of=20the=20range=20that=20m=
aps=20to=20plain=20ASCII
I=20anyway=20uprgade=20this=
=20mechanism.=20First=20of=20all,=20the=20short=20commands=20will=20
<= pre>be=20equivalents=20to=20more=20verbose=20ones.

\withgrave=20=20=20=20=20=20=20{a}=20=3D=3D=20\\`{a}
\withacute=
=20=20=20=20=20=20=20{a}=20=3D=3D=20\\'{a}
\withcircumflex=20=20{=
a}=20=3D=3D=20\\^{a}
\withtilde=20=20=20=20=20=20=20{a}=20=3D=3D=
=20\\~{a}
\withmacron=20=20=20=20=20=20{a}=20=3D=3D=20\\=3D{a}
\withbreve=20=20=20=20=20=20=20{e}=20=3D=3D=20\\u{e}
\wit=
hdot=20=20=20=20=20=20=20=20=20{c}=20=3D=3D=20\\.{c}
\withdieresi=
s=20=20=20=20{e}=20=3D=3D=20\\"{e}
\withring=20=20=20=20=20=20=20=
=20{u}=20=3D=3D=20\\r{u}
\withhungarumlaut{u}=20=3D=3D=20\\H{u}
\withcaron=20=20=20=20=20=20=20{e}=20=3D=3D=20\\v{e}
\wi=
thcedilla=20=20=20=20=20{e}=20=3D=3D=20\\c{e}
\withogonek=20=20=
=20=20=20=20{e}=20=3D=3D=20\\k{e}

Did=20I=20miss=
=20one?

Then=20we=20can=20deprecate=20the=20short=
=20ones=20(keep=20them=20a=20low=20profile,=20with=20
permission=
=20to=20overload).=20After=20all,=20I=20don't=20expect=20someone=20who=20ne=
eds=20
lots=20of=20them=20to=20use=20these=20commands,=20so=20mor=
e=20verbose=20is=20better=20then.=20Aas=20
I=20already=20mentione=
d,=20in=20bib=20files=20they=20are=20treated=20differently=20already.
=

The=20low=20level=20helper=20is=20\chr,=20that=20can=20=
be=20used=20as

\chr=20{a=CC=80}=20\chr=20{a=CC=81}=
=20\chr=20{a=CC=88}
\chr=20{`a}=20\chr=20{'a}=20\chr=20{"a}
=
\chr=20{a=20acute}=20\chr=20{a=20grave}=20\chr=20{a=20umlaut}
\chr=20{aacute}=20=20\chr=20{agrave}=20=20\chr=20{aumlaut}

=
(I=20can=20add=20more=20of=20the=20verbose,=20like=20{cyrillic=
=20a}=20if=20really=20needed.=20It=20
means=20that=20we=20can=20d=
eclare=20\eacute=20etc=20also=20depricated=20(these=20verbose=20
=
names=20date=20from=20\MKII,=20encoding=20neutral=20labels,=20utf=20handlin=
g,=20remapping=20
to=20backend=20encodings=20etc=20but=20we=20don=
't=20need=20that=20and=20I'm=20not=20sure=20if=20
anyone=20ever=
=20used=20those=20long=20names.=20Again,=20depricated,=20not=20removed=20(y=
et).)

Then=20there=20is=20the=20question=20what=20=
to=20do=20with=20\AE=20and=20\ij=20and=20such=20...=20
these=20we=
re=20used=20to=20enforce=20specific=20ligatures=20into=20a=20file=20assumin=
g=20that=20
f=20ont=20has=20them=20but=20nowadays=20that's=20the=
=20job=20of=20a=20font=20handler=20(script=20
language=20control)=
.=20We=20can=20keep=20them=20but=20assume=20them=20legacy.=20They=20
<= pre>normally=20don't=20belong=20in=20input.=20(Being=20Dutch=20I=20actually= =20never=20used=20\IJ=20
or=20\ij).

Now,=
=20we=20can=20assume=20that=20when=20your=20languages=20needs=20characters=
=20with=20
accents=20that=20you=20use=20a=20font=20that=20has=20t=
hem.=20In=20MKIV=20and=20LMTX=20one=20can
enable=20a=20checker

\enabletrackers[fonts.missing]
\enabletrac=
kers[fonts.missing=3Dreplace]
\enabletrackers[fonts.missing=3Drem=
ove]

but=20in=20LMTX=20it's=20upgraded=20with=20mo=
re=20clever=20replacements=20(Jano=20will=20
document=20that=20+=
=20more=20about=20checking=20missing=20stuff=20in=20the=20wiki).
=

So,=20in=20LMTX=20we=20have=20more=20options=20(maybe=20I'll=
=20backport=20that=20to=20MKIV)

\checkmissingchara=
cters=20=20=20\enabletrackers[fonts.missing]
\removemissingcharac=
ters=20=20\enabletrackers[fonts.missing=3Dremove]
\replacemissing=
characters=20\enabletrackers[fonts.missing=3Dreplace]
\handlemiss=
ingcharacters=20=20\enabletrackers[fonts.missing=3D{decompose,replace}]

the=20last=20one=20will=20inject=20decomposed=20chara=
cters=20into=20the=20list=20when=20font=20
lacks=20the=20real=20t=
hing.=20The=20replacements=20visualize=20similar=20to=20MKIV=20but=20
=
adapt=20to=20the=20style.

Hans

=
(no=20upload=20yet)

-------------------=
----------------------------------------------
=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20Hans=20Hagen=20|=20PRAGMA=20ADE
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20Ridderstraat=2027=20|=20806= 1=20GH=20Hasselt=20|=20The=20Netherlands
=20=20=20=20=20=20=20=20=
tel:=20038=20477=2053=2069=20|=20
www.pragma-ade.nl
=20|=20
www.pragma-pod.nl

------=
-----------------------------------------------------------
_____=
___________________________________________________________________________=
___
If=20your=20question=20is=20of=20interest=20to=20others=20as=
=20well,=20please=20add=20an=20entry=20to=20the=20Wiki!

maillist=20:=20
ntg=
-context@ntg.nl
=20/=20
http://www.ntg.nl/mailman/listinfo/ntg-co=
ntext

webpage=20=20:=20
http://www.pragma-ade.nl
=20/=20
http://context.aanhet.net<=
/pre>

archive=20=20:=20
https://bitbucket.org/phg/con=
text-mirror/commits/

wiki=20=20=20=20=20:=20
http://contextgarden.net

________________________________________________=
___________________________________
--=-8J+fAEQx5UVR8ddcGipo-- --===============7664263633413290555== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly9jb250ZXh0LmFhbmhldC5uZXQKYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tldC5v cmcvcGhnL2NvbnRleHQtbWlycm9yL2NvbW1pdHMvCndpa2kgICAgIDogaHR0cDovL2NvbnRleHRn YXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCg== --===============7664263633413290555==--