Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1to0rF-004o9e-Jm for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Feb 2025 13:56:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1to0rG-006yBd-N7 for pgsql-hackers@arkaria.postgresql.org; Fri, 28 Feb 2025 13:56:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1to0rG-006xxA-As for pgsql-hackers@lists.postgresql.org; Fri, 28 Feb 2025 13:56:53 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1to0r8-000BRq-1K for pgsql-hackers@lists.postgresql.org; Fri, 28 Feb 2025 13:56:49 +0000 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-abec8b750ebso351471966b.0 for ; Fri, 28 Feb 2025 05:56:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec.at; s=google; t=1740751006; x=1741355806; darn=lists.postgresql.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=YOgwHmS2VT9jwD/crXWEZ9zXaMOUWx3ytNiPNyDVCmo=; b=LPd3gWFxBnWy58eeacGPL+qXCcyxe9iNfHWk7vD7XYj+AWIm5jRdwVsEp5jwaRlFNP l0FCYwa6IfbDxmdixclqzUACd6xsRKxkjLfP0fh5W6f+gxdjAzvGAXkWJjlcWCG1X8bS 5RJJ5KPRXduyzvXlO4w4qD20f1rq/WTGqT7jZE6/3PGPEG1+hw0LlaibriY9xNCfzjIU E8CBVYJcqT2vBP595lDYYAFclRwWe1F2XQ7ljmKbiTXBXo38ZR02XfRnc1mMCv+2M6cP WgCv/U4iGzP2BAdKOj8JISPA1qfaWzhcP2CR6ba1dGiDB3AaVbZHtshL6UYe+0EwFCC8 zrUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740751006; x=1741355806; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=YOgwHmS2VT9jwD/crXWEZ9zXaMOUWx3ytNiPNyDVCmo=; b=BjoJTXcq8BBHEA3O9ipM7ZVHiq2N7JRUAPBF4a1ndQPHgXSLQGPg3ACFn89k/RvKh1 A68KXJpZZbLMFszprqWvytpCP0qo/xsdOGr0EeKVysKoO7qWyQaOK0z/Wbq1TM2NCbMM FJBG8UpZWhGeR3D72jnBdRfQUjIcQ3emTWfQv223YnMNVvuN+4o7P193lwE0tjl/N7HX wDtx31yhtX+FwuVmTmDfAELM7eE1KsLVJugxjZb34BEiOA4PTRHqYgCmdGIWzEsln8yI tK4w8HdbQHnAc22EpS2oAh0usCppMNXshD9fIxwf+MIWkm5Otmr5IzU4oxJFwuLxitBq mt4A== X-Gm-Message-State: AOJu0Yw0enD+qzuvIrWoogt80k715ee900pPKtotsJsBkKUbPTXlnUKD xbQzOuGexejjWQh7GiIAf09LUw6UI/SI5hMhqoMegb3w3+m1TUHrVyl8RU8rgmwcL/L1sxrdHFA yc2M= X-Gm-Gg: ASbGncs3l9P+1WiZHvClO7yfvz7PVX26t36dU0Ng1e2SZWJJHVkOg8B96ycuPpMXgbj kTh9nXO9sDmjn78U/+iTFNe14gi9YzNMZr9OLfLV/sihhGgn55anXPy7nxo7Y2Ix1hqWjVkbrj8 P/JGquLBpR0hGxtCSu5b43u3jYV+RSZsRpYu9e1XAUi94cLiPLNlfAreW5M2orz+b6xKuS1TOIK Bb69hTKakhWBaH+H/yi7RNiCjAvT1FdNLmMcnAudbj9shLCquXVgyNo/fHrBOcI4J2i+rz11ZIa H+QxwQgbcI5/beLrtY9C+KTTjdDyR6vfZPMc6iyPYCza/Q== X-Google-Smtp-Source: AGHT+IEqUSyDoXSm8x9B9038f0o4EaWUKeNpzIM+NF8bqDFnjvWGtVe6kF2ez2T2XXiBKEBmZATpeQ== X-Received: by 2002:a17:907:7a86:b0:ab6:ef94:6054 with SMTP id a640c23a62f3a-abf261fbb1emr366724866b.33.1740751006043; Fri, 28 Feb 2025 05:56:46 -0800 (PST) Received: from localhost.localdomain ([88.116.133.170]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-abf0c7624desm290883866b.158.2025.02.28.05.56.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Feb 2025 05:56:45 -0800 (PST) Message-ID: Subject: Re: doc: create table improvements From: Laurenz Albe To: "David G. Johnston" , Peter Eisentraut Cc: PostgreSQL Hackers Date: Fri, 28 Feb 2025 14:56:44 +0100 In-Reply-To: References: Content-Type: multipart/mixed; boundary="=-SBYb+Bawm4vDzxzB2Zn9" User-Agent: Evolution 3.54.3 (3.54.3-1.fc41) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-SBYb+Bawm4vDzxzB2Zn9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2024-04-24 at 07:45 -0700, David G. Johnston wrote: > On Wed, Apr 24, 2024 at 3:30=E2=80=AFAM Peter Eisentraut wrote: > > =C2=A0> +=C2=A0 =C2=A0The reliability characteristics of a table are go= verned by its > > =C2=A0> +=C2=A0 =C2=A0persistence mode.=C2=A0 The default mode is descr= ibed > > =C2=A0> +=C2=A0 =C2=A0here > > =C2=A0> +=C2=A0 =C2=A0There are two alternative modes that can be speci= fied during > > =C2=A0> +=C2=A0 =C2=A0table creation: > > =C2=A0> +=C2=A0 =C2=A0tempo= rary and > > =C2=A0> +=C2=A0 =C2=A0unlogg= ed. > >=20 > > Not sure reliability is the best word here.=C2=A0 I mean, a temporary t= able=20 > > isn't any less reliable than any other table.=C2=A0 It just does differ= ent=20 > > things. >=20 > Given the name of the section where this is all discussed I'm having trou= ble > going=C2=A0with a different word.=C2=A0 This patch has rotted somewhat, and parts of it have become obsolete with commit e2bab2d792. Still, I think that it is a good idea to shorten the lines in the synopsis. A detailed review: > diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create= _table.sgml > index 02f31d2d6f..9a5dafb9af 100644 > --- a/doc/src/sgml/ref/create_table.sgml > +++ b/doc/src/sgml/ref/create_table.sgml > [...] > +and column_storage is: > + > +STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } [ COMPRESSION <= replaceable>compression_method ] > [...] I don't know if "column_storage" is descriptive. After all, this is solely about TOAST details, which is only one aspect of storage. I have renamed it to "oversize_storage". @@ -118,11 +127,21 @@ WITH ( MODULUS numer= ic_literal, REM Description =20 - CREATE TABLE will create a new, initially empty tabl= e + CREATE TABLE will create a new, initially empty, tab= le in the current database. The table will be owned by the user issuing th= e command. I am not a native speaker, but the sentence feels better to me without the extra comma. I took the liberty to undo this change, partly because it is unrelated to the topic of the patch. + + The reliability characteristics of a table are governed by its + persistence mode. The default mode is described + here + There are two alternative modes that can be specified during + table creation: + temporary and + unlogged. + I agree with Peter that "reliability" is not ideal. I went with "durability" instead. I removed the link to the reliability discussion and rephrased the sentence somewhat. + + + If specified on a partitioned table the property is recorded but ign= ored: + the entire partitioned table is not automatically truncated after a = crash + or unclean shutdown. + This has become obsolete with e2bab2d792, so I removed it. Attached is an updated patch. Yours, Laurenz Albe --=-SBYb+Bawm4vDzxzB2Zn9 Content-Disposition: attachment; filename="v2-0001-Unclutter-CREATE-TABLE-synopsis.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v2-0001-Unclutter-CREATE-TABLE-synopsis.patch"; charset="UTF-8" RnJvbSAzMzhkZmI1MmQ4M2QwZjljMDc0MjE2NDFhMDExMWEyZjhlNjNiMzRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogRnJpLCAyOCBGZWIgMjAyNSAxNDozNjoyNSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djJdIFVuY2x1dHRlciBDUkVBVEUgVEFCTEUgc3lub3BzaXMKCkZhY3RvciBvdXQgdGhlICJwZXJz aXN0ZW5jZSBtb2RlIiBhbmQgIm92ZXJzaXplIHN0b3JhZ2UiIHBhcnRzCm9mIHRoZSBzeW50YXgg c3lub3BzaXMgdG8gcmVkdWNlIHRoZSBsaW5lIGxlbmd0aCBhbmQgaW5jcmVhc2UKdGhlIHJlYWRh YmlsaXR5LgoKQXV0aG9yOiBEYXZpZCBHLiBKb2huc3RvbgpSZXZpZXdlZC1ieTogTGF1cmVueiBB bGJlCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FLRlF1d1lmTVYtMlNkclAtdW1y NVNWTlNxVG4zNzhCVXZIc2ViZXRwNSUzRERoVDQ5NHclNDBtYWlsLmdtYWlsLmNvbQotLS0KIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgfCAyNyArKysrKysrKysrKysrKysrKysr KysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IDBhM2U1MjBmMjE1Li43M2YxOGQ2 YjMzMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0yMSw4ICsyMSw4IEBAIFBv c3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgot Q1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dH RUQgXSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ICggWwotICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIFNUT1JBR0UgeyBQTEFJTiB8IEVY VEVSTkFMIHwgRVhURU5ERUQgfCBNQUlOIHwgREVGQVVMVCB9IF0gWyBDT01QUkVTU0lPTiA8cmVw bGFjZWFibGU+Y29tcHJlc3Npb25fbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJl cGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KK0NS RUFURSBbIDxyZXBsYWNlYWJsZT5wZXJzaXN0ZW5jZV9tb2RlPC9yZXBsYWNlYWJsZT4gXSBUQUJM RSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVf bmFtZTwvcmVwbGFjZWFibGU+ICggWworICB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIDxyZXBsYWNlYWJsZT5vdmVyc2l6ZV9zdG9yYWdl PC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFj ZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX2NvbnN0cmFp bnQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdIF0KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25z dHJhaW50PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxlPnNvdXJjZV90YWJs ZTwvcmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4g Li4uIF0gfQogICAgIFssIC4uLiBdCkBAIC0zNCw3ICszNCw3IEBAIENSRUFURSBbIFsgR0xPQkFM IHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBO T1QgRVhJCiBbIE9OIENPTU1JVCB7IFBSRVNFUlZFIFJPV1MgfCBERUxFVEUgUk9XUyB8IERST1Ag fSBdCiBbIFRBQkxFU1BBQ0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc3Bh Y2VfbmFtZTwvcmVwbGFjZWFibGU+IF0KIAotQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsg VEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+CitD UkVBVEUgWyA8cmVwbGFjZWFibGU+cGVyc2lzdGVuY2VfbW9kZTwvcmVwbGFjZWFibGU+IF0gVEFC TEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPgogICAgIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBbICgKICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbIFdJVEggT1BUSU9OUyBdIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50PC9yZXBsYWNlYWJs ZT4gWyAuLi4gXSBdCiAgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFj ZWFibGU+IH0KQEAgLTQ2LDcgKzQ2LDcgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsg VEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWEkKIFsgT04g Q09NTUlUIHsgUFJFU0VSVkUgUk9XUyB8IERFTEVURSBST1dTIHwgRFJPUCB9IF0KIFsgVEFCTEVT UEFDRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVzcGFjZV9uYW1lPC9yZXBs YWNlYWJsZT4gXQogCi1DUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBU RU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4KK0NSRUFURSBbIDxyZXBs YWNlYWJsZT5wZXJzaXN0ZW5jZV9tb2RlPC9yZXBsYWNlYWJsZT4gXSBUQUJMRSBbIElGIE5PVCBF WElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFj ZWFibGU+CiAgICAgUEFSVElUSU9OIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w YXJlbnRfdGFibGU8L3JlcGxhY2VhYmxlPiBbICgKICAgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbIFdJVEggT1BUSU9OUyBdIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50PC9yZXBsYWNlYWJs ZT4gWyAuLi4gXSBdCiAgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3RyYWludDwvcmVwbGFj ZWFibGU+IH0KQEAgLTU4LDcgKzU4LDE2IEBAIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7 IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJCiBbIE9O IENPTU1JVCB7IFBSRVNFUlZFIFJPV1MgfCBERUxFVEUgUk9XUyB8IERST1AgfSBdCiBbIFRBQkxF U1BBQ0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlc3BhY2VfbmFtZTwvcmVw bGFjZWFibGU+IF0KIAotPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKzxwaHJhc2U+ d2hlcmUgPHJlcGxhY2VhYmxlPnBlcnNpc3RlbmNlX21vZGU8L3JlcGxhY2VhYmxlPiBpczogPC9w aHJhc2U+CisKK1sgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8CitVTkxP R0dFRAorCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGU+b3ZlcnNpemVfc3RvcmFnZTwvcmVwbGFj ZWFibGU+IGlzOjwvcGhyYXNlPgorCitTVE9SQUdFIHsgUExBSU4gfCBFWFRFUk5BTCB8IEVYVEVO REVEIHwgTUFJTiB8IERFRkFVTFQgfSBbIENPTVBSRVNTSU9OIDxyZXBsYWNlYWJsZT5jb21wcmVz c2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdCisKKzxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IGlzOjwvcGhy YXNlPgogCiBbIENPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0 cmFpbnRfbmFtZTwvcmVwbGFjZWFibGU+IF0KIHsgTk9UIE5VTEwgWyBOTyBJTkhFUklUIF0gIHwK QEAgLTEyMyw2ICsxMzIsMTQgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgIGNvbW1hbmQu CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFRoZSBkdXJhYmlsaXR5IGNoYXJhY3RlcmlzdGlj cyBvZiBhIHRhYmxlIGFyZSBnb3Zlcm5lZCBieSBpdHMgcGVyc2lzdGVuY2UKKyAgIG1vZGUuICBJ ZiBub25lIGlzIHNwZWNpZmllZCwgdGhlIGRhdGEgd2lsbCBiZSBwZXJzaXN0ZW50IGFuZCBjcmFz aC1zYWZlLgorICAgRm9yIGxlc3Mgc3RyaW5nZW50IHJlcXVpcmVtZW50cyBhbmQgYmV0dGVyIHBl cmZvcm1hbmNlLCBhIHRhYmxlIGNhbiBiZQorICAgc3BlY2lmaWVkIGFzIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGV0YWJsZS10ZW1wb3JhcnkiPnRlbXBvcmFyeTwvbGluaz4KKyAgIG9yIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZS11bmxvZ2dlZCI+dW5sb2dnZWQ8L2xpbms+LgorICA8 L3BhcmE+CisKICAgPHBhcmE+CiAgICBJZiBhIHNjaGVtYSBuYW1lIGlzIGdpdmVuIChmb3IgZXhh bXBsZSwgPGxpdGVyYWw+Q1JFQVRFIFRBQkxFCiAgICBteXNjaGVtYS5teXRhYmxlIC4uLjwvbGl0 ZXJhbD4pIHRoZW4gdGhlIHRhYmxlIGlzIGNyZWF0ZWQgaW4gdGhlIHNwZWNpZmllZAotLSAKMi40 OC4xCgo= --=-SBYb+Bawm4vDzxzB2Zn9--