From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 23434 invoked from network); 18 Dec 2023 16:14:50 -0000 Received: from cgl.ntg.nl (5.39.185.202) by inbox.vuxu.org with ESMTPUTF8; 18 Dec 2023 16:14:50 -0000 Received: from localhost (localhost [127.0.0.1]) by cgl.ntg.nl (Postfix) with ESMTP id 01555483CB3 for ; Mon, 18 Dec 2023 01:57:49 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at cgl.ntg.nl Received: from cgl.ntg.nl ([127.0.0.1]) by localhost (cgl.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id neU4cKxi8lcp for ; Mon, 18 Dec 2023 01:57:48 +0100 (CET) Received: from cgl.ntg.nl (localhost [127.0.0.1]) by cgl.ntg.nl (Postfix) with ESMTP id ED586483E0C for ; Mon, 18 Dec 2023 01:56:31 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by cgl.ntg.nl (Postfix) with ESMTP id D6045483A1A for ; Mon, 18 Dec 2023 01:55:49 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at cgl.ntg.nl Received: from cgl.ntg.nl ([127.0.0.1]) by localhost (cgl.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ijAIv-z8euuL for ; Mon, 18 Dec 2023 01:55:49 +0100 (CET) Received: from outbound.soverin.net (outbound.soverin.net [185.233.34.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by cgl.ntg.nl (Postfix) with ESMTPS id 56A8F483A19 for ; Mon, 18 Dec 2023 01:55:49 +0100 (CET) Received: from smtp.freedom.nl (c04cst-smtp-frd02.int.sover.in [10.10.4.108]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 4SthFx1sdtz5x for ; Mon, 18 Dec 2023 00:55:49 +0000 (UTC) Received: from smtp.freedom.nl (smtp.freedom.nl [10.10.4.108]) by freedom.nl (Postfix) with ESMTPSA id 4SthFw2VVhz2xCF for ; Mon, 18 Dec 2023 00:55:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freedom.nl; s=default; t=1702860949; bh=DfDl7VH0dinN265d9VVUARBVwgTs+o0ZWSHrO3bbIx4=; h=Date:Subject:To:References:From:In-Reply-To:From; b=VOV9J+6QompbtOV70xwD8PhwKL9z9G3RdNfIegXfFfAZYDAV65g2QxTosMWZMU5rt ONJtKjm+aGgKuuHbnIWXy3LNn/jXgJz48dwt9T8nQR2ZVbmjSUycRj3dqeXpF2NCZt egtGxzqVsCPZolipioec6elwwC2Ttc29nMw5m9Ic= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freedom.nl; s=default; t=1702860948; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/ZWl9yhBx16mrFSRxqEDslkL/j4pZ3DuoxCsW5S+UdA=; b=xAwmhv31jxs70n+fDdFYG5ln+jD0dDwr9wMaanktfSJC5gXX/9lc3XsXpKbTuAoqzejCSc PG2ud3imDYRgM99mmFykGCucQ6KqB7OdpSIIv91xpjcbyO5u6gH1w1//HhMXBNlUeS5V1E p+tG4Nm2iIG0Cv9wezV8emc8rDsAgvc= ARC-Seal: i=1; s=default; d=freedom.nl; t=1702860948; a=rsa-sha256; cv=none; b=ay29+8l4Cut2InKHDdZWXThQa1IciN/8j31Ss3J1ObnNRzNbj2xl4E040YyAKRK6Go1MNG //Y9vZK45pZkEGLyvSQIR5HFKAkwxN4tMSAPAwEdAHQkwTSGJy+yfDOvU6BHx6UyjLbLCk fGK8NXv6a2flzutN1AbnKXqHGxoOLII= ARC-Authentication-Results: i=1; smtp.freedom.nl; auth=pass smtp.mailfrom=j.hagen@freedom.nl Message-ID: <09bcff56-2b9c-45ec-a285-4b621c73725d@freedom.nl> Date: Mon, 18 Dec 2023 01:55:45 +0100 MIME-Version: 1.0 Content-Language: en-US To: ntg-context@ntg.nl References: X-Soverin-Authenticated: true In-Reply-To: Message-ID-Hash: FL7JJ2HUA2KEFGNQCPFXFA63Y6WXW2RE X-Message-ID-Hash: FL7JJ2HUA2KEFGNQCPFXFA63Y6WXW2RE X-MailFrom: j.hagen@freedom.nl X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list Reply-To: mailing list for ConTeXt users Subject: [NTG-context] Re: Seeking advice for module that draws globes List-Id: mailing list for ConTeXt users Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Hans Hagen via ntg-context Cc: Hans Hagen Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 T24gMTIvMTcvMjAyMyAxMToyMiBQTSwgR2F2aW4gdmlhIG50Zy1jb250ZXh0IHdyb3RlOg0KPiBI ZWxsbyBDb25UZVh0ZXJzLA0KPiANCj4gSSB3cm90ZSBhIGxpdHRsZSBDb25UZVh0IG1vZHVsZSBm b3IgZHJhd2luZyBnbG9iZXMuIEkgd291bGQgbG92ZSBzb21lIGFkdmljZSBvbiBob3cgdG8gaW1w cm92ZSBpdCBhbmQgc2hhcmUgaXQuIFRoZSBjb2RlIGlzIHF1aXRlIHNob3J0IChhYm91dCAyNTAg bGluZXMpLiBNb3N0IG9mIHRoZSB3b3JrIGlzIGRvbmUgYnkgTHVhLCB3aGljaCByZWFkcyB0aGUg ZGF0YSBmaWxlcyBhbmQgY2FsY3VsYXRlcyBwYXRocy4gVGhlc2UgcGF0aHMgYXJlIHBhc3NlZCB0 byBNZXRhRnVuLCB3aGljaCBkcmF3cyB0aGUgZ2xvYmUuDQoNCkp1c3Qgc29tZSBxdWlrcyByZW1h cmtzIC4uLg0KDQotIHlvdSB1c2UgdGhlIHJpZ2h0IHN0cmF0ZWd5ICh0ZXgvbHVhL21wKQ0KDQot IGluIG1wIHlvdSBjYW4gZG8gdGhpcw0KDQp2YXJkZWYgdGhlZ2xvYmUoZXhwciBsYXQsIGxvbikg PQ0KICAgICBmb3IgaSA9IDEgdXB0byBsdWEubXAubWFrZWdsb2JlKGxhdCwgbG9uKToNCiAgICAg ICAgIChsdWEubXAuZ2V0Z2xvYmVwYXRoKGkpKSAmJiYmDQogICAgIGVuZGZvcg0KICAgICBjeWNs ZQ0KZW5kZGVmIDsNCg0KYW5kIHRoZW46DQoNClxzdGFydE1QcGFnZQ0KICAgICBHbG9iZURpYW1l dGVyID0gMTBjbSA7DQogICAgIGZpbGwgZnVsbGNpcmNsZQ0KICAgICAgICAgc2NhbGVkIEdsb2Jl RGlhbWV0ZXINCiAgICAgICAgIHdpdGhjb2xvciAuOXdoaXRlIDsNCiAgICAgcGF0aCBwIDsgcCA6 PSB0aGVnbG9iZSgyMywgMCkNCiAgICAgICAgIHNjYWxlZCAuNUdsb2JlRGlhbWV0ZXINCiAgICAg Ow0KICAgICBkcmF3IHANCiAgICAgICAgIHdpdGhwZW4gcGVuY2lyY2xlIHNjYWxlZCAuMm1tDQog ICAgICAgICB3aXRoY29sb3IgYmx1ZQ0KICAgICAgICAgd2l0aHRyYW5zcGFyZW5jeSAoMSwuNSkg Ow0KICAgICBmaWxsIHANCiAgICAgICAgIHdpdGhjb2xvciByZWQNCiAgICAgICAgIHdpdGh0cmFu c3BhcmVuY3kgKDEsLjUpIDsNCiAgICAgZHJhdyBmdWxsY2lyY2xlDQogICAgICAgICBzY2FsZWQg R2xvYmVEaWFtZXRlcg0KICAgICAgICAgd2l0aGNvbG9yIGJsYWNrIDsNClxzdG9wTVBwYWdlDQoN CmkgdXNlIHRyYW5zcGFyZW5jeSB0byBkZW1vIHRoYXQgYSBzaW5nbGUgcGF0aCBoYXMgYWR2YW50 YWdlczsgeW91J2xsIA0KYWxzbyBub3RpY2UgdGhhdCB0aGUgcnVudGltZSBpcyBhY3R1YWxseSBh dCB0aGUgbXAgZW5kLg0KDQotIGluIHlvdXIgbHVhIGNvZGUgZG8gdGhpcw0KDQpsb2NhbCBjb3Nk ID0gbWF0aC5jb3NkDQpsb2NhbCBzaW5kID0gbWF0aC5zaW5kDQpsb2NhbCBzcXJ0ID0gbWF0aC5z cXJ0DQoNCi0gYWxzbywgdXNlICJNUC5tYWtlZ2xvYmUiIGluIHRoZSBtcCBjb2RlIGFuZCBhdCB0 aGUgbHVhIGVuZCBmdW5jdGlvbiANCk1QLm1ha2VnbG9iZSIiIGFzIHRoYXQgaXMgdGhlIHVzZXIg bmFtZXNwYWNlLg0KDQpJJ2xsIG1haWwgeW91IHRoZSBsdWEgZmlsZSB3aXRoIHNvbWUgc3VnZ2Vz dGlvbnMuIFdoZW4gYWxsIGlzIHN0YWJsZSBJIA0KY2FuIHNwZW5kIGEgZmV3IGhvdXJzIG9uIG9w dGltaXppbmcgaWYgbmVlZGVkLg0KDQo+IEkgYW0gYSBub3ZpY2UgYXQgYm90aCBMdWEgYW5kIE1l dGFQb3N0LiBJ4oCZbSBhbHNvIG5ldyB0byBHaXQgYW5kIGhhdmUgbmV2ZXIgc2hhcmVkIGFueXRo aW5nIG9mIHN1YnN0YW5jZSB3aXRoIHRoZSBDb25UZVh0IGNvbW11bml0eS4gKFRoaXMgYmFyZWx5 IGNvdW50cyBhcyBzdWJzdGFudGl2ZSwgYnV0IEkgZmlndXJlIGl04oCZcyBiZXN0IHRvIHN0YXJ0 IHNtYWxsLikgSeKAmW0gc3VyZSBtYW55IG9mIHlvdSBjb3VsZCBmaW5kIG9wcG9ydHVuaXRpZXMg Zm9yIGltcHJvdmVtZW50IHdpdGggZXZlbiBhIHF1aWNrIGdsYW5jZSBhdCB0aGUgY29kZS4gSSB3 ZWxjb21lIGFueXRoaW5nLCBmcm9tIGFkdmljZSBvbiBwZXJmb3JtYW5jZSB0byBzdWdnZXN0aW9u cyBhYm91dCB0aGUgbGljZW5zZS4gTXkgbW9zdCBwcmVzc2luZyBxdWVzdGlvbnMgYXJlIHRoZXNl Og0KDQo+IDEuIEhvdyBkbyBJIGF2b2lkIHJlZHJhd2luZyBkaWFncmFtcyB3aXRoIGV2ZXJ5IHR5 cGVzZXQ/IFRoZSBnbG9iZSBhYm92ZSB0YWtlcyBhYm91dCAwLjdzLCB3aGljaCBpcyBub3QgYmFk LCBidXQgaXQgYWRkcyB1cCBpbiBhIGJvb2sgd2l0aCBtYW55IGRpYWdyYW1zLg0KDQpzZWUgcHJl dmlvdXMgbWFpbA0KDQo+IDIuIEhvdyBkbyBJIG9yZ2FuaXplIHRoaXMgYWNjb3JkaW5nIHRvIFRE UyBmb3Igc2hhcmluZz8gSSBrbm93IHdoYXQgVERTIGlzIGFuZCB3aHkgaXTigJlzIGltcG9ydGFu dCwgYnV0IHRoYXTigJlzIGFib3V0IGl0IQ0KPiANCj4gMy4gU2hvdWxkIEkgYmUgY3JlYXRpbmcg YSBuYW1lc3BhY2UgZm9yIHRoaXMgbW9kdWxlLCBvciBsYXVuY2hpbmcgYSBzZXBhcmF0ZSBNZXRh RnVuIGluc3RhbmNlPyBJIGhhdmUgYSBnZW5lcmFsIHNlbnNlIG9mIHdoYXQg4oCcbmFtZXNwYWNl 4oCdIGFuZCDigJxpbnN0YW5jZeKAnSBtZWFuIGlzIHRoaXMgY29udGV4dCwgYnV0IEkgZG9u4oCZ dCBrbm93IHRoZSBjb25zZXF1ZW5jZXMgb3IgdGhlIGhvdy10by4NCj4gDQo+IEnigJlkIGxpa2Ug dG8gc2hhcmUgdGhpcyBtb2R1bGUsIGV2ZW4gdGhvdWdoIHRoZSBwb3RlbnRpYWwgZGVtYW5kIGlz IHRpbnksIGF0IGJlc3QuIEnigJltIGdvaW5nIHRocm91Z2ggdGhlIE1vZHVsZSBXcml0aW5nIEd1 aWRlbGluZXMgKGh0dHBzOi8vd2lraS5jb250ZXh0Z2FyZGVuLm5ldC9Nb2R1bGVzI01vZHVsZV93 cml0aW5nX2d1aWRlbGluZXMpLCBidXQgdGhlcmUgaXMgYSBsb3QgdGhhdCBJIGRvbuKAmXQgdW5k ZXJzdGFuZCBpbiB0aG9zZSBpbnN0cnVjdGlvbnMuIFF1ZXN0aW9ucyAyIGFuZCAzIGFib3ZlIHJl bGF0ZSB0byB0aGUgaW5zdHJ1Y3Rpb25zIHRoYXQgYXJlIG1vc3QgbXlzdGVyaW91cyB0byBtZS4g SSB0aGluayBJIGNhbiBmaWd1cmUgbW9zdCBvZiB0aGUgb3RoZXJzIG91dC4NCj4gDQo+IEkgaGF2 ZSBiZWVuIHVzaW5nIENvblRlWHQgZm9yIHNldmVyYWwgeWVhcnMgdG8gd3JpdGUgYSBoaWdoIHNj aG9vbCBwaHlzaWNzIHRleHRib29rIChhbG9uZyB3aXRoIHRoZSBwcm9ibGVtIHNldHMsIHRlc3Rz LCBlcXVhdGlvbnMgc2hlZXRzLCBldGMuKS4gSSB3cm90ZSB0aGlzIG1vZHVsZSBiZWNhdXNlIEkg bmVlZGVkIGdsb2JlcyBpbiBzb21lIGRpYWdyYW1zLiBJIGZvdW5kIGFuIG9sZCBNZXRhUG9zdCB0 b29sLCBtcC1nZW8sIHRoYXQgc2VlbWVkIHRvIGhhdmUgdGhlIHJpZ2h0IGluZ3JlZGllbnRzLCBi dXQgSSBjb3VsZG7igJl0IGdldCBpdCB0byB3b3JrLCBzbyBJIHdyb3RlIG15IG93biB0b29sIHVz aW5nIHRoZSBkYXRhIGZpbGVzIGZyb20gbXAtZ2VvLiBIYW5zIGFuZCBvdGhlcnMgb24gdGhlIGxp c3QgZ2F2ZSBtZSB2YWx1YWJsZSBhZHZpY2UgZm9yIHRoZXNlIGdsb2JlcyBhIGNvdXBsZSB5ZWFy cyBhZ28gKGFuZCBnYXZlIG90aGVyIHZhbHVhYmxlIGFkdmljZSBvbiBhbGwgc29ydHMgb2YgdGhp bmdzIGJlZm9yZSBhbmQgc2luY2UpLg0KPiANCj4gTWFueSBkaWFncmFtcyBpbiBteSBwaHlzaWNz IGJvb2sgdXNlIFRpa1ogYW5kIHBnZnBsb3RzLiBJJ2QgbGlrZSB0byBjb252ZXJ0IGV2ZXJ5dGhp bmcgdG8gTWV0YUZ1bi4gSSB0aGluayB0aGUgYmVzdCB3YXkgd2lsbCBiZSB3cml0aW5nIGEgZmV3 IG1vcmUgbW9kdWxlcyBmb3IgdGhpbmdzIGxpa2UgZ3JhcGhzIChpbmNsdWRpbmcgcG9sYXIgYW5k IDNEIHBsb3RzKSwgc2ltcGxlIGNpcmN1aXRzLCBzaW1wbGUgRmV5bm1hbiBkaWFncmFtcywgZXRj LiBJ4oCZbSBob3BpbmcgdGhhdCB0aGVzZSB3b3VsZCBiZSB1c2VmdWwgdG8gdGhlIENvblRlWHQg Y29tbXVuaXR5LiBUaGUgbHVhZ2VvIG1vZHVsZSBoYXMgdGhlIGJhc2ljIGRlc2lnbiBJ4oCZZCBs aWtlIHRvIHVzZSBmb3IgdGhlIG90aGVyczogTHVhIGZvciBkYXRhIGhhbmRsaW5nIGFuZCBjYWxj dWxhdGlvbnMsIHByb2R1Y2luZyBwYXRocyB0aGF0IGFyZSBkcmF3biBieSBNZXRhRnVuLiBXaXRo IHNvbWUgbWVudG9yaW5nIGZyb20gdGhlIGdlbmVyb3VzIENvblRlWHQgY29tbXVuaXR5LCBJ4oCZ bSBob3Bpbmcgd2UgY2FuIHByb3ZpZGUgTWV0YUZ1biBhbHRlcm5hdGl2ZXMgdG8gc29tZSBvZiB0 aGUgVGlrWiBsaWJyYXJpZXMuDQoNCm5leHQgeWVhciBNaWthZWwgUyBhbmQgSSBhcmUgZ29pbmcg dG8gbG9vayBpbnRvIDNEIChhbmQgcHJvamVjdGlvbnMpIGFzIA0Kd2UgY2FuIG9ubHkgd29yayBv biBtYXRoIHdoZW4gd2UgaGF2ZSBhIHBhcmFsbGVsIG1ldGFmdW4gcGV0IHByb2plY3QuDQoNCj4g SSBoYXZlIGFuIGFscGhhIHZlcnNpb24gb2YgbHVhZ3JhcGggYnkgQWxhbiBCcmFzbGF1LCB3aGlj aCB3YXMgaGVscGZ1bCBpbiBkZXNpZ25pbmcgbHVhZ2VvLiBXb3JraW5nIG9uIGx1YWdyYXBoIGlz IG15IG5leHQgcHJvamVjdC4NCj4gDQo+IEdhdmluDQo+IA0KPiANCj4gDQo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQo+IElmIHlvdXIgcXVlc3Rpb24gaXMgb2YgaW50ZXJlc3QgdG8gb3Ro ZXJzIGFzIHdlbGwsIHBsZWFzZSBhZGQgYW4gZW50cnkgdG8gdGhlIFdpa2khDQo+IA0KPiBtYWls bGlzdCA6IG50Zy1jb250ZXh0QG50Zy5ubCAvIGh0dHBzOi8vbWFpbG1hbi5udGcubmwvbWFpbG1h bjMvbGlzdHMvbnRnLWNvbnRleHQubnRnLm5sDQo+IHdlYnBhZ2UgIDogaHR0cHM6Ly93d3cucHJh Z21hLWFkZS5ubCAvIGh0dHBzOi8vY29udGV4dC5hYW5oZXQubmV0IChtaXJyb3IpDQo+IGFyY2hp dmUgIDogaHR0cHM6Ly9naXRodWIuY29tL2NvbnRleHRnYXJkZW4vY29udGV4dA0KPiB3aWtpICAg ICA6IGh0dHBzOi8vd2lraS5jb250ZXh0Z2FyZGVuLm5ldA0KPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXw0KDQotLSANCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBIYW5zIEhhZ2VuIHwgUFJBR01BIEFERQ0KICAgICAgICAgICAgICAgUmlk ZGVyc3RyYWF0IDI3IHwgODA2MSBHSCBIYXNzZWx0IHwgVGhlIE5ldGhlcmxhbmRzDQogICAgICAg IHRlbDogMDM4IDQ3NyA1MyA2OSB8IHd3dy5wcmFnbWEtYWRlLm5sIHwgd3d3LnByYWdtYS1wb2Qu bmwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklmIHlvdXIgcXVlc3Rp b24gaXMgb2YgaW50ZXJlc3QgdG8gb3RoZXJzIGFzIHdlbGwsIHBsZWFzZSBhZGQgYW4gZW50cnkg dG8gdGhlIFdpa2khCgptYWlsbGlzdCA6IG50Zy1jb250ZXh0QG50Zy5ubCAvIGh0dHBzOi8vbWFp bG1hbi5udGcubmwvbWFpbG1hbjMvbGlzdHMvbnRnLWNvbnRleHQubnRnLm5sCndlYnBhZ2UgIDog aHR0cHM6Ly93d3cucHJhZ21hLWFkZS5ubCAvIGh0dHBzOi8vY29udGV4dC5hYW5oZXQubmV0ICht aXJyb3IpCmFyY2hpdmUgIDogaHR0cHM6Ly9naXRodWIuY29tL2NvbnRleHRnYXJkZW4vY29udGV4 dAp3aWtpICAgICA6IGh0dHBzOi8vd2lraS5jb250ZXh0Z2FyZGVuLm5ldApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo=