From de54728b670ecbe2b47f085a65f896228c9f999e Mon Sep 17 00:00:00 2001 From: Franklin Weng Date: Thu, 7 Nov 2024 13:19:06 +0800 Subject: [PATCH] Add ODF1.4 support to validator. 1. Move ODF 1.4 schema files from LibreOffice master to here 2. Add version entries 3. Add command line arguments 4. Add test case file --- .../org/odftoolkit/odfvalidator/Main.java | 5 +- .../odftoolkit/odfvalidator/ODFValidator.java | 2 + .../odftoolkit/odfvalidator/OdfVersion.java | 3 +- .../odf1.4/OpenDocument-v1.4-dsig-schema.rng | 60 + .../OpenDocument-v1.4-manifest-schema.rng | 237 + .../odf1.4/OpenDocument-v1.4-metadata.owl | 62 + .../OpenDocument-v1.4-package-metadata.owl | 59 + .../odf1.4/OpenDocument-v1.4-schema.rng | 18573 ++++++++++++++++ .../main/resources/schema/odf1_4.properties | 32 + .../odftoolkit/odfvalidator/ValidTest.java | 19 + .../src/test/resources/testFormTextBox.odt | Bin 0 -> 9950 bytes 11 files changed, 19049 insertions(+), 3 deletions(-) create mode 100644 validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng create mode 100644 validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng create mode 100644 validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-metadata.owl create mode 100644 validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-package-metadata.owl create mode 100644 validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-schema.rng create mode 100644 validator/src/main/resources/schema/odf1_4.properties create mode 100644 validator/src/test/resources/testFormTextBox.odt diff --git a/validator/src/main/java/org/odftoolkit/odfvalidator/Main.java b/validator/src/main/java/org/odftoolkit/odfvalidator/Main.java index 02998a6348..1a6f2d4f9a 100644 --- a/validator/src/main/java/org/odftoolkit/odfvalidator/Main.java +++ b/validator/src/main/java/org/odftoolkit/odfvalidator/Main.java @@ -123,7 +123,8 @@ public static void main(String[] aArgs) { } else if (aArg.equals("-1.0") || aArg.equals("-1.1") || aArg.equals("-1.2") - || aArg.equals("-1.3")) { + || aArg.equals("-1.3") + || aArg.equals("-1.4")) { aVersion = OdfVersion.valueOf(aArg.substring(1), false); } else if (aArg.startsWith("-")) { System.err.print(aArg); @@ -245,7 +246,7 @@ public static void main(String[] aArgs) { private static void printUsage() { System.out.println("usage: odfvalidator -g "); System.out.println( - " odfvalidator [-r] [-c|-e|-s] [-d] [-v|-w] [-f ] [-x ] [-o outputfile] [-1.0|-1.1|-1.2|1.3] "); + " odfvalidator [-r] [-c|-e|-s] [-d] [-v|-w] [-f ] [-x ] [-o outputfile] [-1.0|-1.1|-1.2|1.3|1.4] "); System.out.println( " odfvalidator [-r] [-c|-e|-s] [-d] [-v|-w] [-f ] [-x ] [-o outputfile] -S "); System.out.println( diff --git a/validator/src/main/java/org/odftoolkit/odfvalidator/ODFValidator.java b/validator/src/main/java/org/odftoolkit/odfvalidator/ODFValidator.java index 5ad5a29f87..8214e2d2ca 100644 --- a/validator/src/main/java/org/odftoolkit/odfvalidator/ODFValidator.java +++ b/validator/src/main/java/org/odftoolkit/odfvalidator/ODFValidator.java @@ -270,6 +270,8 @@ private Configuration getConfiguration(OdfVersion aVersion) throws ODFValidatorE String aConfigName = null; if (aVersion == null || aVersion == OdfVersion.V1_3) { aConfigName = "/schema/odf1_3.properties"; + } else if (aVersion == OdfVersion.V1_4) { + aConfigName = "/schema/odf1_4.properties"; } else if (aVersion == OdfVersion.V1_2) { aConfigName = "/schema/odf1_2.properties"; } else if (aVersion == OdfVersion.V1_1) { diff --git a/validator/src/main/java/org/odftoolkit/odfvalidator/OdfVersion.java b/validator/src/main/java/org/odftoolkit/odfvalidator/OdfVersion.java index 466414ccc5..ee67c402c4 100644 --- a/validator/src/main/java/org/odftoolkit/odfvalidator/OdfVersion.java +++ b/validator/src/main/java/org/odftoolkit/odfvalidator/OdfVersion.java @@ -27,7 +27,8 @@ public enum OdfVersion { V1_0("1.0"), V1_1("1.1"), V1_2("1.2"), - V1_3("1.3"); + V1_3("1.3"), + V1_4("1.4"); private String m_aValue; diff --git a/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng new file mode 100644 index 0000000000..7ad488a7f7 --- /dev/null +++ b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4 + + + diff --git a/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng new file mode 100644 index 0000000000..5e3e5df9ea --- /dev/null +++ b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + Blowfish CFB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SHA1/1K + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + edit + presentation-slide-show + read-only + + + + + + + + + + + + + + + + + + + + + PGP + + + + + PBKDF2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4 + + + + + [^:]+:[^:]+ + + + + + + + + + + + + + + + + SHA1 + + + + + + + + + + + + + + diff --git a/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-metadata.owl b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-metadata.owl new file mode 100644 index 0000000000..45f2ecdd3d --- /dev/null +++ b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-metadata.owl @@ -0,0 +1,62 @@ + + + + + + + + + + + Open Document Schema Metadata Manifest Ontology + + + + + + The unique content.xml from the root path of the document + + + + + + The unique styles.xml from the root path of the document + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-package-metadata.owl b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-package-metadata.owl new file mode 100644 index 0000000000..1d9e3e2466 --- /dev/null +++ b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-package-metadata.owl @@ -0,0 +1,59 @@ + + + + + + + + + + Open Document Package Metadata Manifest Ontology + + + + + + + + + + + + + + + + Related to dcterms:hasPart of the Dublin Core Metadata Initiative + + + + + Used for any metadata file in the document + + + + + + + + + A string representing the MIME media type of a file (see RFC4288). + + + + + + + diff --git a/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-schema.rng b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-schema.rng new file mode 100644 index 0000000000..169c5c8f6c --- /dev/null +++ b/validator/src/main/resources/schema/odf1.4/OpenDocument-v1.4-schema.rng @@ -0,0 +1,18573 @@ + + + + + + + + + + + + + + + + + + (([\i-[:]][\c-[:]]*)?:)?.+ + 1 + + + + + + + + + + + + + + + + + + + + + + + + \[(([\i-[:]][\c-[:]]*)?:)?.+\] + 3 + + + + + + + + + + + + + + + + + rgb + hsl + + + + + + + clockwise + counter-clockwise + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + translate + scale + rotate + skewX + skewY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + + + + in + out + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + An IRI-reference as defined in [RFC3987]. See ODF 1.4 Part 3 section 18.3. + + + + + + + + + + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+ + + + + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)? + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+ + + + ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+ + + + + + + Value is a space separated list of "cellRangeAddress" patterns + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + x + y + z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + major + minor + + + + + + + + + + + + + + + + + + + + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + top-start + bottom-start + top-end + bottom-end + + + + + + + + + wide + high + balanced + + + + + custom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\) + + + + + #[0-9a-fA-F]{6} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + sum + + + + + + + replace + sum + + + + + + + + + + + default + on-click + with-previous + after-previous + timing-root + main-sequence + interactive-sequence + + + + + + + + + + + + + + + + + custom + entrance + exit + emphasis + motion-path + ole-action + media-call + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + discrete + linear + paced + spline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transparent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + column + page + + even-page + odd-page + + + + + + + auto + column + page + + even-page + odd-page + + + + + + + + + gregorian + gengou + ROC + hanja_yoil + hanja + hijri + jewish + buddhist + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + medium + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + new + replace + + + + + + + + + + + + nohref + + + + + + + + + + + + + + + + + full + section + cut + arc + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + onLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + scale + scale-min + + + + + + + + scale + scale-min + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + first + last + all + media + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + value + formula + + + + + + + + + value + formula + none + + + + + + + + + value + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + remove + freeze + hold + transition + auto + inherit + + + + + + + + + remove + freeze + hold + auto + default + transition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + center + + + + + + start + end + top + bottom + + + + + + start + center + end + + + + + + + + + + + flat + 3d + + + + + + + + + fixed + language + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + i + I + + + + + + + + a + A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + indefinite + + + + + + + + + never + always + whenNotActive + inherit + + + + + + + + + never + always + whenNotActive + default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ltr + ttb + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + objectBoundingBox + + + + + + + + + + + pad + reflect + repeat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + accepted + rejected + pending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + start + end + left + right + center + justify + + + + + + + + + + page + frame + paragraph + char + as-char + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + + + percentage + + + + + + + + currency + + + + + + + + + + + + + date + + + + + + + + time + + + + + + + + boolean + + + + + + + + string + + + + + + + + + + + error + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + from-top + below + + + + + + + + + + + + + + page + page-content + + page-content-bottom + + page-content-top + frame + frame-content + paragraph + paragraph-content + char + line + baseline + text + + + + + + + + + lr-tb + lr + rl-tb + rl + tb-rl + tb + tb-lr + + sideways-rl + sideways-lr + page + + + + + + + + + + + + + + + + + + boolean + short + int + long + double + string + datetime + base64Binary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [A-Za-z0-9]{1,8} + + + + + + + + + + + + + + + + + + + non-primitive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + equal-integer + is-boolean + equal-boolean + equal-use-only-zero + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-nulls + nullable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + none + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + none + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boolean + short + int + long + double + string + + + + + + + + + + + + + + + + + + + + + + + + + bit + boolean + tinyint + smallint + integer + bigint + float + real + double + numeric + decimal + char + varchar + longvarchar + date + time + timestmp + binary + varbinary + longvarbinary + sqlnull + other + object + distinct + struct + array + blob + clob + ref + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + primary + unique + foreign + + + + + + + + + + + cascade + restrict + set-null + no-action + set-default + + + + + + + cascade + restrict + set-null + no-action + set-default + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + standard + lines + line + curve + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flat + phong + gouraud + draft + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + parallel + perspective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + segments + rectangle + + + + + + + + + + + + + + + + + normal + path + shape + + + + + + + path + shape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom-right + + + + + + auto + left + right + up + down + horizontal + vertical + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + single + double + triple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + always + screen + printer + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rect + round + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -0.5 + 0.5 + + + + + roman + swiss + modern + decorative + script + system + + + + + fixed + variable + + + + + normal + italic + oblique + + + + + normal + small-caps + + + + + normal + bold + 100 + 200 + 300 + 400 + 500 + 600 + 700 + 800 + 900 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + get + post + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + table + query + command + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + + + + + + + percentage + + + + + + + + + + + + currency + + + + + + + + + + + + + + + + + date + + + + + + + + + + + + time + + + + + + + + + + + + boolean + + + + + + + + + + + + string + + + + + + + + + + + void + + + + + + + + void + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + + + + + + + + linear + axial + radial + ellipsoid + square + rectangular + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + horizontal + horizontal-on-odd + horizontal-on-even + + + + + + + + + + + + + + + + + + + + + + + + + + + + avoid-overlap + center + top + top-right + right + bottom-right + bottom + bottom-left + left + top-left + inside + outside + near-origin + + + + + + + + [A-Za-z]{1,8} + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + continuous + skip-white-space + + + + + none + solid + dotted + dash + long-dash + dot-dash + dot-dot-dash + wave + + + + + none + single + double + + + + + auto + normal + bold + thin + medium + thick + + + + + + + + + + selection + selection-indices + + + + + + + + + + + + + + + + table + query + sql + sql-pass-through + value-list + table-fields + + + + + + + + + + + To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element + + + + + + + + + + + + + + + + + + + + + [^:]+:[^:]+ + + + + + none + current + parent + + + + + 0.0 + + + + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+) + + + + + ([0-9]+(\.[0-9]*)?|\.[0-9]+)(px) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + short + long + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + into-default-style-data-style + into-english-number + keep-text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + + + + + + simple + + + + + + + replace + + + + + onLoad + + + + + + + + + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + float + + + + + + date + + + + + + time + + + + + + boolean + + + + + + string + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:page-count + text:paragraph-count + text:word-count + text:character-count + text:table-count + text:image-count + text:object-count + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:reference-ref + text:bookmark-ref + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + value + unit + gap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text:identifier + text:address + text:annote + text:author + text:booktitle + text:chapter + text:edition + text:editor + text:howpublished + text:institution + text:journal + text:month + text:note + text:number + text:organizations + text:pages + text:publisher + text:school + text:series + text:title + text:report-type + text:volume + text:year + text:url + text:custom1 + text:custom2 + text:custom3 + text:custom4 + text:custom5 + text:isbn + text:issn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -?([0-9]+(\.[0-9]*)?|\.[0-9]+)% + + + + + \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\) + + + + + -?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)* + + + + + + + + ([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px)) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + title + outline + subtitle + text + graphic + object + chart + table + orgchart + page + notes + handout + header + footer + date-time + page-number + + + + + + + + + + fixed + current-date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + previous-page + next-page + first-page + last-page + hide + stop + execute + show + verb + fade-out + sound + last-visited-page + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + none + from-left + from-top + from-right + from-bottom + from-center + from-upper-left + from-upper-right + from-lower-left + from-lower-right + to-left + to-top + to-right + to-bottom + to-upper-left + to-upper-right + to-lower-right + to-lower-left + path + spiral-inward-left + spiral-inward-right + spiral-outward-left + spiral-outward-right + vertical + horizontal + to-center + clockwise + counter-clockwise + + + + + none + fade + move + stripes + open + close + dissolve + wavyline + random + lines + laser + appear + hide + move-short + checkerboard + rotate + stretch + + + + + slow + medium + fast + + + + + + + + + + [0-9]+\* + + + + + row + column + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + [A-Za-z0-9]{1,8} + + + + + + + + + + + + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)% + + + + + + + + + + + + unchecked + checked + unknown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + + + + + + left + center + right + top + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + automatic + + + + named-symbol + + + + square + diamond + arrow-down + arrow-up + arrow-right + arrow-left + bow-tie + hourglass + circle + star + x + plus + asterisk + horizontal-bar + vertical-bar + + + + + + image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + cubic-spline + b-spline + step-start + step-end + step-center-x + step-center-y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cuboid + cylinder + cone + pyramid + + + + + + + + + + + + + + + + + use-zero + leave-gap + ignore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + side-by-side + stagger-even + stagger-odd + + + + + + + + + none + value + percentage + value-and-percentage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + variance + standard-deviation + percentage + error-margin + constant + standard-error + cell-range + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + columns + rows + + + + + + + none + linear + logarithmic + moving-average + exponential + power + polynomial + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + prior + central + averaged-abscissa + + + + + + + + start + end + + + + + + + + near-axis + near-axis-other-side + outside-start + outside-end + + + + + + + at-labels + at-axis + at-labels-and-axis + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + solid + dotted + dashed + dot-dashed + + + + + + + + + + + + + + + top + middle + bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + manual + automatic + semi-automatic + + + + + + + none + fade-from-left + fade-from-top + fade-from-right + fade-from-bottom + fade-from-upperleft + fade-from-upperright + fade-from-lowerleft + fade-from-lowerright + move-from-left + move-from-top + move-from-right + move-from-bottom + move-from-upperleft + move-from-upperright + move-from-lowerleft + move-from-lowerright + uncover-to-left + uncover-to-top + uncover-to-right + uncover-to-bottom + uncover-to-upperleft + uncover-to-upperright + uncover-to-lowerleft + uncover-to-lowerright + fade-to-center + fade-from-center + vertical-stripes + horizontal-stripes + clockwise + counterclockwise + open-vertical + open-horizontal + close-vertical + close-horizontal + wavyline-from-left + wavyline-from-top + wavyline-from-right + wavyline-from-bottom + spiralin-left + spiralin-right + spiralout-left + spiralout-right + roll-from-top + roll-from-left + roll-from-right + roll-from-bottom + stretch-from-left + stretch-from-top + stretch-from-right + stretch-from-bottom + vertical-lines + horizontal-lines + dissolve + random + vertical-checkerboard + horizontal-checkerboard + interlocking-horizontal-left + interlocking-horizontal-right + interlocking-vertical-top + interlocking-vertical-bottom + fly-away + open + close + melt + + + + + + + + + + + + + + + + + + + + + + forward + reverse + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + full + border + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + word + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + ultra-condensed + extra-condensed + condensed + semi-condensed + semi-expanded + expanded + extra-expanded + ultra-expanded + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + + + + + + + + + + + + + + + + + + + + + + none + solid + bitmap + gradient + hatch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-repeat + repeat + stretch + + scale + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top-left + top + top-right + left + center + right + bottom-left + bottom + bottom-right + + + + + + + + + horizontal + vertical + + + + + + + + + + + + + + + + + + nonzero + evenodd + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + dash + solid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 1 + + + + + + + + + miter + round + bevel + middle + none + + + + + + + butt + square + round + + + + + + + + + + + + none + scroll + alternate + slide + + + + + + + left + right + up + down + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + justify + + + + + + + left + center + right + justify + + + + + + + no-wrap + wrap + + + + + + + + + + + + greyscale + mono + watermark + standard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + below + above + + + + + + + + + + + + automatic + left-outside + inside + right-outside + + + + + + + automatic + above + below + center + + + + + + + automatic + mm + cm + m + km + pt + pc + inch + ft + mi + + + + + + + + + + + + + + + + + straight-line + angled-line + angled-connector-line + + + + + + + fixed + free + + + + + + + + + + + + + + + + + horizontal + vertical + auto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + correct + attractive + + + + + + + + + + + + + + + + + enabled + disabled + + + + + + + + + + + + + + + + + + + + + + standard + double-sided + + + + + + + object + flat + sphere + + + + + + + normal + inverse + + + + + + + object + parallel + sphere + + + + + + + object + parallel + sphere + + + + + + + luminance + intensity + color + + + + + + + enabled + disabled + + + + + + + replace + modulate + blend + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + visible + hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + content + position + size + + + + + + + + + + left + center + right + from-left + inside + outside + from-inside + + + + + + + + + + + + page + page-content + page-start-margin + page-end-margin + frame + frame-content + frame-start-margin + frame-end-margin + paragraph + paragraph-content + paragraph-start-margin + paragraph-end-margin + char + + + + + + + + + + + + + + + + + none + left + right + parallel + dynamic + run-through + biggest + + + + + + + + + + + + no-limit + + + + + + + + + + + + + full + outside + + + + + + + foreground + background + + + + + + + + + + + + clip + auto-create-new-frame + + + + + + + none + vertical + + + vertical + + + + + vertical + + + + + + + + auto + + + + + + + + iterative + once-concurrent + once-successive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + content + thumbnail + icon + print-view + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + listtab + space + nothing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + label-width-and-position + label-alignment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + left + right + mirrored + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + + + + + + + + portrait + landscape + + + + + + + + + + + + + + + + + + + + + + + + + + + + headers + grid + annotations + objects + charts + drawings + formulas + zero-values + + + + + + + + + ttb + ltr + + + + + + + + + continue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + horizontal + vertical + both + none + + + + + + + + + + + + + none + line + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + start + center + justify + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + page + + + + + + + no-limit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + ideograph-alpha + + + + + + + simple + hanging + + + + + + + normal + strict + + + + + + + top + middle + bottom + auto + baseline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + above + below + + + + + + + left + center + right + distribute-letter + distribute-space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + + + + + + + + paragraph + + + + + + + + + + + section + + + + + + + + ruby + + + + + + + + table + + + + + + + + table-column + + + + + + + + table-row + + + + + + + + table-cell + + + + + + + + + + + + + + + graphic + presentation + + + + + + + + + + + + + + + drawing-page + + + + + + + + chart + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + + + + + + char + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + top + middle + bottom + automatic + + + + + + + fix + value-type + + + + + + + + auto + 0 + 0deg + 0rad + 0grad + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + no-wrap + wrap + + + + + + + + none + bottom + top + center + + + + + + + none + hidden-and-protected + + + + protected + formula-hidden + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + center + right + margins + + + + + + + + + + + + + + + + + + + + collapsing + separating + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + lowercase + uppercase + capitalize + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + super + sub + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + latin + asian + complex + ignore + + + + + + + + normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + embossed + engraved + + + + + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + font-color + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + letters + lines + + + + + + + + + + + + + + + + + none + + + none + accent + dot + circle + disc + + + above + below + + + + + + + + + + + + + + + + + + + fixed + line-height + + + + + + + + + + + + + + + + + + + + + true + + + none + + + + condition + + + none + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + records + current + page + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-top + from-bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + data + hidden + + + + + page + + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + named + + + + + + + + previous + next + + + + + + none + member-difference + member-percentage + member-percentage-difference + running-total + row-percentage + column-percentage + total-percentage + index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + auto + + + + + + auto + + + + + + + + + + auto + + + + + + auto + + + + + + + + + + + + + seconds + minutes + hours + days + months + quarters + years + + + + + + + + + + + + + + + + + tabular-layout + outline-subtotals-top + outline-subtotals-bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + data + + + + + + + + none + manual + name + + + + + + ascending + descending + + + + + + + + + + + + + + auto + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + row + column + both + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stop + warning + information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + self + cell-range + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + number + + + + + + + + + + + + + + text-color + data-style-color + + + + + + window-font-color + + + + + + + background-color + + + + + + transparent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + from-another-table + to-another-table + from-same-table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + row + column + table + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + enable + disable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + column + row + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + + + + print-range + filter + repeat-row + repeat-column + + + + + + + + + + + + date + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + trace-dependents + remove-dependents + trace-precedents + remove-precedents + trace-errors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + alpha-numeric + integer + double + + + + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + text + number + automatic + + + + + + + + ascending + descending + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + average + count + countnums + max + min + product + stdev + stdevp + sum + var + varp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + copy-all + copy-results-only + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + none + unsorted + sort-ascending + + + + + + + + visible + collapse + filter + + + + + + + + + + + + + + + + + + + _self + _blank + _parent + _top + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + onRequest + + + + + + + + + + + new + replace + + + + + + + + + + + + + + + + + + + + + + + + + + simple + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 2 + 3 + separator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + article + book + booklet + conference + custom1 + custom2 + custom3 + custom4 + custom5 + email + inbook + incollection + inproceedings + journal + manual + mastersthesis + misc + phdthesis + proceedings + techreport + unpublished + www + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + page + chapter + direction + text + number-no-superior + number-all-superior + number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + name + number + number-and-name + plain-number-and-name + plain-number + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + full + path + name + name-and-extension + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text + category-and-value + caption + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + name + number + number-and-name + plain-number + plain-number-and-name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + right + + + + left + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left + right + inner + outer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + footnote + endnote + + + + + + + + + + page + chapter + direction + text + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + page + + + + + + + text + page + section + document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + next + + + + + + + + + + + + + + + + + + + + + + + + previous + current + next + + + + + + + + + + + + + + + + + text + table + text-box + image + object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + none + + + + + condition + + + + + + + + + + + + + + + + + + + simple + + + + + + + embed + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + page + chapter + direction + text + category-and-value + caption + value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + address + annote + author + bibliography-type + booktitle + chapter + custom1 + custom2 + custom3 + custom4 + custom5 + edition + editor + howpublished + identifier + institution + isbn + issn + journal + month + note + number + organizations + pages + publisher + report-type + school + series + title + url + volume + year + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + document + chapter + + + + + + + + + + + + + + + full + path + name + name-and-extension + area + title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [A-Za-z][A-Za-z0-9._\-]* + + + + + + + + + + + + + + submit + reset + push + url + + + + + float + time + date + percentage + currency + boolean + string + + + + + + + + \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\) + + + + + top + center + bottom + + + + + + + + + + + + + + + + + + + + + + ([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)% + + + + + 0 + 1 + + + diff --git a/validator/src/main/resources/schema/odf1_4.properties b/validator/src/main/resources/schema/odf1_4.properties new file mode 100644 index 0000000000..a645918b19 --- /dev/null +++ b/validator/src/main/resources/schema/odf1_4.properties @@ -0,0 +1,32 @@ + + + + +/schema/odf1.4/OpenDocument-v1.4-manifest-schema.rng + +/schema/odf1.4/OpenDocument-v1.4-schema.rng +/schema/mathml1.01/math.dtd +/schema/mathml3/mathml3.rng +/schema/odf1.4/OpenDocument-v1.4-dsig-schema.rng + + diff --git a/validator/src/test/java/org/odftoolkit/odfvalidator/ValidTest.java b/validator/src/test/java/org/odftoolkit/odfvalidator/ValidTest.java index 2bc97ec206..7db0b69dec 100644 --- a/validator/src/test/java/org/odftoolkit/odfvalidator/ValidTest.java +++ b/validator/src/test/java/org/odftoolkit/odfvalidator/ValidTest.java @@ -160,4 +160,23 @@ public void validateForeignElementCharacterContentExtendedInNonCharacterElement( Assert.assertFalse(output.contains("unexpected character literal")); Assert.assertFalse(output.contains("Error:")); } + + @Test + public void validateFormTextBox() { + String output = ""; + try { + String name = "testFormTextBox.odt"; + output = doValidation(name, OdfVersion.V1_4, OdfValidatorMode.EXTENDED_CONFORMANCE, true); + } catch (Throwable t) { + t.printStackTrace(); + Assert.fail(t.toString()); + } + if (output.contains("Exception")) { + System.out.println("OUTPUT:" + output); + Assert.fail("An exception occurred during validation!"); + } + System.out.println("OUTPUT:" + output); + Assert.assertFalse(output.contains("unexpected attribute")); + Assert.assertFalse(output.contains("Error:")); + } } diff --git a/validator/src/test/resources/testFormTextBox.odt b/validator/src/test/resources/testFormTextBox.odt new file mode 100644 index 0000000000000000000000000000000000000000..22b228852882d150f5514dd5e59303691a1d7743 GIT binary patch literal 9950 zcmbt)1z1#D7xvJNbhk=3NJ)nh(v5V3#J~(Oq%=xPr*wm~(hbre3|-Qa0wN7R-22^& z-cRrM|IfeXIcL_KXTR^>XRR}Pue0`2l7oZC0|1Z#0B$-9ZT&7zbUFY4aC_Wb0@zyF znt>reGb13-#>&J9Y-Ml9=4@xmYHtLx0avzlH2Z zld!ilx3X|@{DTI>$!26?VrFA@^V8mu?e|E^Um&e)jV#PSY~og6TO%OoU%({40E6xA zZGc90W;XwVBl-o-+{WGrZ1!(M{Z(%uuo2h^WNh?rxL@^lJIa4Y{mP_3M|%rLGtmF& z?^ojl+5??{H;#1rf3(UippCTTpK_5Ex=(24Z!!wb^;z7e3pCKex_A z!kt1MG_Y%BRhJb-2+($7ycLY)v27HkL3!Vp=ALJ{@R^buRZS_D)71b|;~O>YyxU?@Vq8WfDb? zmYz6^gu&Fs=W|q0rgX4%x!zO1x4d)um0Kzt=btK$*2RpbD*G!=A0j#ybhV3>a&5Pm z9*I)c{(XQ`g+)Bf=IL|8S8J$D`UY_o_bib^w9*g_%(MyJ`z?lenW_CsKO*Or8YiuU zxwUC&1xLobd{#US`Sc_;_8Y-K-(t>lYA(bglRzA@T)vE@RkY=&Tn+5au~S=%k9^X> zPYCRlQTlMkB1~A2h4he`pW@?sZ|oU|NEAR~PY}14T0HXQ7o`$7z@ylu*Cu$Pcd1yu7Zi z7DTR(DMc>V_nI%hzQZ1JTT$HWVH3GJOrgU#El-nFmAC93D1|~&me8SNyJo58Ta!Ln zjC3-Kt~+~Wu#zphIFsjvhW;zt1aK>=h>PE*&JLy!^$^jjbzzK^rj^p()o8=Y$CS@u zs|6IlA$crIP`IEWxk7K&jn#m!6?i<+dSIN2m(`&fL2uNFY~<%Jp_~Cf-pg*0(qMu* zg15D~$$XfK%1B%RTQvw3FeD$bihf2Nem@Fg>C8x+*;bT|>X3an*Hc5waD@eZ!$7K} z|DdzKj7DemBk{1^Hvf~dM1KYvl;Tx$86PLiwPbZ8St_)gPvth`s`bjNkX98cC5m3p zycOw0r+(^nov{tFbVr2E`QL#tcjD=#w)h&_PDg(7Vc5*TYB=wdFoNVe09`pMk z)V7Q>ZoNns(Fo1hF%!JlAQEyzcONmpM&?LC2GF11-&7G$5-W-_#^S2It%$l~3{N%e8PhTJ3uWEQ+6&JK#w zQztNk`^DmNv3x6!Fe_X5V!#ZgezC0>usOpQy^8ALazgdgQdX#-EOKb1xQy7!%N>H{ zO#!93<;^@rjMV~P#+R~1A?7}5Qy_Ic+6taJylgR4>H;OE^`wd!R(;jB9%Ed^N9G7z z(6&z1LCq7oXoZx!SL#t<=nkupF6N9h!uy* z7#zE2%|p@Ro^DrvzF*ds65psEVBGv^Aj9^af|zZ=czT@+Lr3A+Zh4@@V7SmS`zJUC zIMVHxW~GA`BzhF=+oar$-wEo3r35i(%Ri~(_T%(tS)URB0?)4el{cw}vIU4NS-ILB zG-U%=h1)UEJ>Khhy|?&Muuh=%B*(6j0`@zs1K`O=ot&B{@l1`6thM=1FlwQUVfcKV077?`@Q|d&mTLQ@4_&uLt0^BwH&~RVttfI@!z(?Ydm1+G@O5VN1RvVl zi-ekQK8uahwiQs;w?np%8l!qR_*aH492!nNyyEoR5!WT!MBoI}3Q|T^Q?2zHHLJar zjGYKs4^>W3zhoUgWv2N^{B#dxnjn!9Zu)F(ZuZ4yd-jG3IJWl1&?_bm@_tPf+YHom{(|1O7c>=7zR;SU$3)I|*_?XEM6vcLs`fk}D5GQLa?IbE z(~&^lsiih~R=8k79J15X(y%p8ty5$n|9AslDw^T^=^4aVJH{<*%#S&+# zV`S*#jj^K8DvHp=L_ze#37}_K-CRxgZuz#>Lt6s+!R(wU&d+Bv!quPro_{ar3*vBZ zwO6EALo34cgXrLpH%*uhIYekzI(=AlbtSDQgg?${QMs;GK<~`2gOGeQJKIZ1;e3B4 z3WBQ*8pwFy-$q=^MRk+~E z*C{0+e)ma=p%-i!2W1;39nM>PTPj>g$f<;+I-i{^4=Hql`hV6O|j z3)BH1DM=^VGH7%quinv$thyI2ryBl1ol^eYQphT2&9QybqMeE6OvrjPy`endgnRJ~kzsAA8`scr+RX-1if+BTqVYc-6X5CVDK-d{#JZI=d-2wuwKbG(A*W zoZk}5Wm-|ypw*>W0y(as*yUJ}JY-69C64%-{!Bv$l``(Vk$*V#2mmxge(v41=lu>VC?Sc9EB~T*=9dRGYtgLc#q}bfbq1dJ& zePwsb?4z-#%h#z(tM8QLkdR9mbgQp!g6nV&0N~HC_g7I9`c2eiYh-6-ZUzFgI+~gf zL=V{cv19q~2?m%APKvT2AUM+Z)>^-9c@(IHz;=*?Gv5>*t)ZMj3 zjuF|%kc#|PHEt7zhrQC4)nAwd>RD@ZW(1}uYnUjL$oH-Na^5o5x!5uC8^i^$@S@uc zRc6w=CLIbYHqf*}`5dItyQ;#GQ7FR1t&UbaNcabrP|P)z!CUE(kYg&LkU4>Z^a@m? z8kNSN8mcHC(J+)}z5ZZ7vN{F1POi8^W&YNTouzKW#!mNg|*RNQIu8Ei4RXI!Ahz@31oJFoz9Z;%2 z{lk1!$CjTEU;qF=xPLPr+Ku^4?Crp}ZzeZUXSJ5RJ=r6orbDJDejT>X6;pu^h5Bz5 zC6~f`K?{35BXbZjKL&y~Kpxcd##Hte=Fbd9r}Q3z!eN+g_1$}9`^@)IC~^f0Q2W(l zfVqncfDegev?`cm^eOb}n9Hs_$w%gX6oe2#FT58z* zz>`NwYn%c0(-ms|Av~4e+$R6H*mT4gT8>;T z5#6p!{e{^0H9yD7U7T8`=}=8{Yc$lkvwK5w%)zwO){}uOC`}95I>UqIJce(dv+O_~ zR_cuOSMD+(deke>`3^6nnFN)?oMLYm%9&(HodxC^M><-@^?7l@=i(1(%3mIqm%R5--QiG3EiL1qSL7o;t+q`q%`43FD52no>G zW+@ZbOMEoGo^yf0*x%I?y%=Ju?(j-#9p0B1lGV@YYcD-sG+6iu8k>#LBO z<7q2uX%o6%oMl*qWB;PjFy(5f^ptpvkclXqNd|LJQ&-CDT@fkGepNI znzODne5V`Bh8`6oAJh#kh8lBWF0Y}!0csy6yF?}wy_>Gi&x;5bnl3K8AH|hKE;K!4 zyFUHQBS!{#F1I8vWx1!ELv@5FLvz1dJ@3?Z>auJPtgR~dK#5g}ABB|F1vhq>uS^NP zk80W6@@eoJvLpnXarVNLX!ITl_xEMOpQYvD-yO)9@}hSUWAgfrWrB&6UQp~1N%>fY z;3shq1TGMkrmmeDR!TTJwBKLbdEjtWwvKPF>ln4E!OH*8ifF8aqOHwoG{JWTUHOYX zKOFHe72|kA1@#y%^`~z*c~OUrWA|X1@gyG&7ieI8r1L2X$p?`P8;CNw_Y>V)=^ijF8 z@qy`Oh!ZN6PZVYOmW6@d<^JeVWpinoH}1Fh=T@URkjU zZ)I$sQRgcdH9|H25FC#z*A7P6lKTtvrF7N194Ap_hapHWE|ZnR)si_;UFxKEDF&6K zVxfm;pP#Sm-|q$4(Mb%pqB=eSAA2Pyo-H0!o*(Ov#_sLyV0<56x0;n5TPyay*hd@K zI{E0)AS+GU9~XVHW@cEbLL>K@0Q+4Gu?n7|lS{zmOyt)4*}N)W%LLPjHQR?avo;tr zGCtRKEGzn#FpbqIs&6ziDK?W+4aUjL@utXXm4aM^b01l&Npy> zr29G-vsBB`p*xv-H1|%^;QI6+p3SM7^SDW%QZC_nW#UP8kaKiel-e~+sdwJ{%I3Ft zN2~DB9tXi` z%G;$D$hL%ihyVaE5d7O(@kgS|3~Y3}P=u)tgeS8TH5@b0Of#JzNw?5!=WJRPX;?EJ z5%7N}T#B3gm=M|IiQ!|z)044e9AP1tR?eV5*zM*3JHwbY0rLu224D$QtJ6Ue;WcPu zc4ZL3GjG;}P2kRa?Cbm)o6Nwqz)ssNr+A{ZwKkA??AUXxJE|N%lc+mi{LN#EG`w$= zeli@v6Ji#RxEj=1MlX6t_s9Ay+3G4^L>BtEVf*xXvaV zlS+Qf*ldq{nq(?M8xeGL%(<^QHXOGSF4Ri6dxTIuXg?zGkl_CANok-`fMhC?NG@v~ubMO8u@&k92~a)+Mv%}VG(HrL>54;MG+u)->m%zc2*~9G zyb*$5gwCdMaox*()C--)+*&p8WE_8U%^yvHQ!!A##K~~3+p1|ND5qsttTA;o+x+%4 z@R*k+_>~OPmi+}|r+v)GVXyj*s?+n1&&KZThh&bFX4{015hg^&HsiZdn&J2jw!L;j zrp-$970z6Z;_e4?bfq_9xnb^x1r~6i`j_fLlEwJR_2w$fzogq6PttkP#yr-#(5Css zRbb-k<2s{N563L%*J`I3l-NMp3{hV%d0?W-Y!KtJIzRdNTB-gdt6|o&z;XZSPD8O8 zT^_2!TV}EC9@WRv@wl?#` z?3GvYSirYWKIL)qoNHf9wHs~Y!-E^j-RB!MKJn=BA|gZueK6T?`|^30NmKwwp9Hap z+sVH#$Q72&>m?MDi%!$4E6IdtR=dcNNs$R42o4|dvf9S=E36qI`8ahCvr8xY{zXfA z?&Ar|Mgon|ytRJ69gAMMLQis(O_oK zR#76Q&aw*kk>w|oGUrn9{)~s2d9{xc=U*%xOcBKBJ}*b#TEkwzW;>oyQpWP#^bvm| zYD3a1IVEC-<0j<{ggLgynKY3!XH}cGELMSi&7A;@wQ+Ajwc@l(kVy*~yMwEUPHmy?a>{ zPtl!m`!g~Eh_$j&C)#&O$v578QW9+q<%82pZQudEL&3kG+o+SoacUB5E8`2++$; zl8(%-{J3WOEMA&RVnMYSZEIN9I?!y+kQf1|5oTzou{LF$JhA(wDQ;@;MaA0@gB952+v}`VeIfEE)>+EnobQUPdYo4FL zNYrocFC?-2Kp8^u@?<_D>X^aGdt8+Ko(p#YpC@KO#VA1msc#t8`Y@PM#PI=k`Cw$3 zccRtv4dm|x^#>tVUHiOc`cK3WmR^>>#1N8;H;(!$Y2*=aIMb2=OW59o41S7Me)x*% znl2`45_ec~@BMfC4S&Kv!{63&t@)fCnZ5)T~-dc*J2 zld~zE;0~QVQRuqAt>XMh=;&+}a=FYgT5N3C^(m4*Kol`U^u1UCWi`svitr5SR_9`w zu0^i6UDO%4%+$7!0^rAzXi1x+;GlcM^TAooCec$Y1nwU?%3T9{U`L;!^#E3V;yNZh z2<<(_PQHpM7T{B}PXplO6oYtb)y)~loE$g-xN$jr9&fwki_>8)$Q)9hst;E5IP2o2 z@kl4;#%W2SAhc~=XB!AQVjEs7CX|`%9VVQrxlWwWKjtEow4oQ zyptMVE*hpAD_}?ksq|UgH0(2Ozu{bFVqOk+Yer; zETin@D9J#F%s{^d4EisTkgA&DV!QcU;_{f{nbL{yjX4Q%1Yle*lT02Bvo#xicnxU| z>7zP5(Xy9e+1{i&+gVI5d(*~4_O-!2EJ!zymf8mJ%d8Vw4ES1z`X&Ai-YImBLY&BVj0NmM{KX~M;uuC>& zz3d#aMn&{tIz@esvCF2SEIW=JIr`Sf*fChB(bE!Xb*!F_|2lnt3I2_mgSe@aBtM>6x08v9Ym@jg6C&lbf5{>({R%BO}w()ARH5ySuyl`}%l%SLvic^+N=`y)Unc^u#DvgkUX-^xK)(VZj~^dKa?@?TP2IY`bUMNTIu%64dh1o z3H#q9l`4BV@;!CF`4eU-wS_{#ZqFvo3NLEuJn^KEFHv=h~kQN=W`_{^xnR zuxka}i*#B{|Y-#aV(_nq9@|>@%pDz{(e}0 zvdJH}bEZD0z?%2an+q@H=Dz}vky4N>6*u(#ebN>Grj@*uniz|W!V|W?v#&R=g(cDQ z*6r+A0mu9SBQ;vGa)eSHJ(Rt0X6q{FlRRiFNtaiyb?bB7;9S%&3MD2SK;D(^W5O}Rf~8wsFdaARqG-A z?bHbaiwF39k;$!Z?&PnMlYgS_S^xmIr4M%^f200;ZOPC5-ys2j+v<`#3A$1L$@E{f zCch`Ut*f|`jvMu#WIxuP{GR7_MY)rU8}*+&ceN