From 4a8c5867608b4c756c6fe06569059f4b330a205d Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Tue, 27 Mar 2018 13:03:23 +1100 Subject: [PATCH] removed duplicated test Signed-off-by: Greg Wilkins --- .../util/MultiPartInputStreamParser.java | 2 +- .../jetty/util/MultiPartParsingTest.java | 282 ----- .../multipart-base64-long.expected.txt | 4 - .../multipart/multipart-base64-long.raw | 8 - .../multipart/multipart-base64.expected.txt | 4 - .../resources/multipart/multipart-base64.raw | 389 ------- .../multipart/multipart-complex.expected.txt | 9 - .../resources/multipart/multipart-complex.raw | Bin 22929 -> 0 bytes .../multipart-duplicate-names-1.expected.txt | 2 - .../multipart/multipart-duplicate-names-1.raw | Bin 1859 -> 0 bytes .../multipart-encoding-mess.expected.txt | 4 - .../multipart/multipart-encoding-mess.raw | 1009 ----------------- ...ultipart-inside-itself-binary.expected.txt | 6 - .../multipart-inside-itself-binary.raw | 50 - .../multipart-inside-itself.expected.txt | 6 - .../multipart/multipart-inside-itself.raw | 42 - .../multipart-number-browser.expected.txt | 3 - .../multipart/multipart-number-browser.raw | 5 - .../multipart-number-strict.expected.txt | 3 - .../multipart/multipart-number-strict.raw | 7 - .../multipart/multipart-sjis.expected.txt | 4 - .../resources/multipart/multipart-sjis.raw | 13 - .../multipart-strange-quoting.expected.txt | 5 - .../multipart/multipart-strange-quoting.raw | 26 - .../multipart-text-files.expected.txt | 9 - .../multipart/multipart-text-files.raw | 23 - .../multipart-unicode-names.expected.txt | 5 - .../multipart/multipart-unicode-names.raw | 13 - .../multipart-uppercase.expected.txt | 5 - .../multipart/multipart-uppercase.raw | 13 - ...ltipart-x-www-form-urlencoded.expected.txt | 5 - .../multipart-x-www-form-urlencoded.raw | 7 - .../multipart-zencoding.expected.txt | 8 - .../multipart/multipart-zencoding.raw | Bin 1830 -> 0 bytes 34 files changed, 1 insertion(+), 1970 deletions(-) delete mode 100644 jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartParsingTest.java delete mode 100644 jetty-util/src/test/resources/multipart/multipart-base64-long.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-base64-long.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-base64.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-base64.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-complex.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-complex.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-duplicate-names-1.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-duplicate-names-1.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-encoding-mess.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-encoding-mess.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-inside-itself.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-inside-itself.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-number-browser.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-number-browser.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-number-strict.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-number-strict.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-sjis.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-sjis.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-strange-quoting.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-strange-quoting.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-text-files.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-text-files.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-unicode-names.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-unicode-names.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-uppercase.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-uppercase.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.raw delete mode 100644 jetty-util/src/test/resources/multipart/multipart-zencoding.expected.txt delete mode 100644 jetty-util/src/test/resources/multipart/multipart-zencoding.raw diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStreamParser.java b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStreamParser.java index c3378d9e794..2dd81111fa0 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStreamParser.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStreamParser.java @@ -674,7 +674,7 @@ public class MultiPartInputStreamParser { String t=tok.nextToken().trim(); String tl=t.toLowerCase(Locale.ENGLISH); - if(t.startsWith("form-data")) + if(tl.startsWith("form-data")) form_data=true; else if(tl.startsWith("name=")) name=value(t); diff --git a/jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartParsingTest.java b/jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartParsingTest.java deleted file mode 100644 index 67e156f6cc9..00000000000 --- a/jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartParsingTest.java +++ /dev/null @@ -1,282 +0,0 @@ -// -// ======================================================================== -// Copyright (c) 1995-2018 Mort Bay Consulting Pty. Ltd. -// ------------------------------------------------------------------------ -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// and Apache License v2.0 which accompanies this distribution. -// -// The Eclipse Public License is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// The Apache License v2.0 is available at -// http://www.opensource.org/licenses/apache2.0.php -// -// You may elect to redistribute this code under either of these licenses. -// ======================================================================== -// - -package org.eclipse.jetty.util; - -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertThat; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; -import java.security.DigestOutputStream; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -import javax.servlet.MultipartConfigElement; -import javax.servlet.http.Part; - -import org.eclipse.jetty.toolchain.test.Hex; -import org.eclipse.jetty.toolchain.test.MavenTestingUtils; -import org.eclipse.jetty.toolchain.test.TestingDir; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; - -@RunWith(Parameterized.class) -public class MultiPartParsingTest -{ - - public static final int MAX_FILE_SIZE = 60 * 1024; - public static final int MAX_REQUEST_SIZE = 1024 * 1024; - public static final int FILE_SIZE_THRESHOLD = 50; - - @Parameterized.Parameters(name = "{0}") - public static List data() - { - List ret = new ArrayList<>(); - - ret.add(new String[]{"multipart-text-files"}); - ret.add(new String[]{"multipart-base64"}); - ret.add(new String[]{"multipart-base64-long"}); - ret.add(new String[]{"multipart-complex"}); - ret.add(new String[]{"multipart-duplicate-names-1"}); - ret.add(new String[]{"multipart-encoding-mess"}); - ret.add(new String[]{"multipart-inside-itself"}); - ret.add(new String[]{"multipart-inside-itself-binary"}); - ret.add(new String[]{"multipart-number-browser"}); - ret.add(new String[]{"multipart-number-strict"}); - ret.add(new String[]{"multipart-sjis"}); - ret.add(new String[]{"multipart-strange-quoting"}); - ret.add(new String[]{"multipart-unicode-names"}); - ret.add(new String[]{"multipart-uppercase"}); - ret.add(new String[]{"multipart-x-www-form-urlencoded"}); - ret.add(new String[]{"multipart-zencoding"}); - - return ret; - } - - @Rule - public TestingDir testingDir = new TestingDir(); - - private final Path multipartRawFile; - private final MultipartExpectations multipartExpectations; - - public MultiPartParsingTest(String rawPrefix) throws IOException - { - multipartRawFile = MavenTestingUtils.getTestResourcePathFile("multipart/" + rawPrefix + ".raw"); - Path expectationPath = MavenTestingUtils.getTestResourcePathFile("multipart/" + rawPrefix + ".expected.txt"); - multipartExpectations = new MultipartExpectations(expectationPath); - } - - @Test - public void testParse() throws IOException, NoSuchAlgorithmException - { - Path outputDir = testingDir.getEmptyPathDir(); - MultipartConfigElement config = newMultipartConfigElement(outputDir); - try (InputStream in = Files.newInputStream(multipartRawFile)) - { - MultiPartInputStreamParser parser = new MultiPartInputStreamParser( - in, multipartExpectations.contentType, config, outputDir.toFile()); - parser.parse(); - - // Evaluate Count - if (multipartExpectations.partCount >= 0) - { - assertThat("Mulitpart.parts.size", parser.getParts().size(), is(multipartExpectations.partCount)); - } - - // Evaluate expected Contents - for (NameValue expected : multipartExpectations.partContainsContents) - { - Part part = parser.getPart(expected.name); - assertThat("Part[" + expected.name + "]", part, is(notNullValue())); - try (InputStream partInputStream = part.getInputStream()) - { - String charset = getCharsetFromContentType(part.getContentType(), UTF_8); - String contents = IO.toString(partInputStream, charset); - assertThat("Part[" + expected.name + "].contents", contents, containsString(expected.value)); - } - } - - // Evaluate expected filenames - for (NameValue expected : multipartExpectations.partFilenames) - { - Part part = parser.getPart(expected.name); - assertThat("Part[" + expected.name + "]", part, is(notNullValue())); - assertThat("Part[" + expected.name + "]", part.getSubmittedFileName(), is(expected.value)); - } - - // Evaluate expected contents checksums - for (NameValue expected : multipartExpectations.partSha1sums) - { - Part part = parser.getPart(expected.name); - assertThat("Part[" + expected.name + "]", part, is(notNullValue())); - MessageDigest digest = MessageDigest.getInstance("SHA1"); - try (InputStream partInputStream = part.getInputStream(); - NoOpOutputStream noop = new NoOpOutputStream(); - DigestOutputStream digester = new DigestOutputStream(noop, digest)) - { - IO.copy(partInputStream, digester); - String actualSha1sum = Hex.asHex(digest.digest()); - assertThat("Part[" + expected.name + "].sha1sum", actualSha1sum, containsString(expected.value)); - } - } - } - } - - private MultipartConfigElement newMultipartConfigElement(Path path) - { - return new MultipartConfigElement(path.toString(), MAX_FILE_SIZE, MAX_REQUEST_SIZE, FILE_SIZE_THRESHOLD); - } - - private String getCharsetFromContentType(String contentType, Charset defaultCharset) - { - if(StringUtil.isBlank(contentType)) - { - return defaultCharset.toString(); - } - - QuotedStringTokenizer tok = new QuotedStringTokenizer(contentType, ";", false, false); - while(tok.hasMoreTokens()) - { - String str = tok.nextToken().trim(); - if(str.startsWith("charset=")) - { - return str.substring("charset=".length()); - } - } - - return defaultCharset.toString(); - } - - public static class NameValue - { - public String name; - public String value; - } - - public static class MultipartExpectations - { - public final String contentType; - public final int partCount; - public final List partFilenames = new ArrayList<>(); - public final List partSha1sums = new ArrayList<>(); - public final List partContainsContents = new ArrayList<>(); - - public MultipartExpectations(Path expectationsPath) throws IOException - { - String parsedContentType = null; - String parsedPartCount = "-1"; - - try (BufferedReader reader = Files.newBufferedReader(expectationsPath)) - { - String line; - while ((line = reader.readLine()) != null) - { - line = line.trim(); - if (StringUtil.isBlank(line) || line.startsWith("#")) - { - // skip blanks and comments - continue; - } - - String split[] = line.split("\\|"); - switch (split[0]) - { - case "Content-Type": - parsedContentType = split[1]; - break; - case "Parts-Count": - parsedPartCount = split[1]; - break; - case "Part-ContainsContents": - { - NameValue pair = new NameValue(); - pair.name = split[1]; - pair.value = split[2]; - partContainsContents.add(pair); - break; - } - case "Part-Filename": - { - NameValue pair = new NameValue(); - pair.name = split[1]; - pair.value = split[2]; - partFilenames.add(pair); - break; - } - case "Part-Sha1sum": - { - NameValue pair = new NameValue(); - pair.name = split[1]; - pair.value = split[2]; - partSha1sums.add(pair); - break; - } - default: - throw new IOException("Bad Line in " + expectationsPath + ": " + line); - } - } - } - - Objects.requireNonNull(parsedContentType, "Missing required 'Content-Type' declaration: " + expectationsPath); - this.contentType = parsedContentType; - this.partCount = Integer.parseInt(parsedPartCount); - } - } - - class NoOpOutputStream extends OutputStream - { - @Override - public void write(byte[] b) throws IOException - { - } - - @Override - public void write(byte[] b, int off, int len) throws IOException - { - } - - @Override - public void flush() throws IOException - { - } - - @Override - public void close() throws IOException - { - } - - @Override - public void write(int b) throws IOException - { - } - } -} diff --git a/jetty-util/src/test/resources/multipart/multipart-base64-long.expected.txt b/jetty-util/src/test/resources/multipart/multipart-base64-long.expected.txt deleted file mode 100644 index 2b1d5ded060..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-base64-long.expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -Content-Type|multipart/form-data; boundary="JuH4rALGPJfmAquncS_U1du8s59GjKKiG9a8" -Parts-Count|1 -Part-Filename|png|jetty-avatar-256.png -Part-Sha1sum|png|e75b73644afe9b234d70da9ff225229de68cdff8 \ No newline at end of file diff --git a/jetty-util/src/test/resources/multipart/multipart-base64-long.raw b/jetty-util/src/test/resources/multipart/multipart-base64-long.raw deleted file mode 100644 index 2e2b4991568..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-base64-long.raw +++ /dev/null @@ -1,8 +0,0 @@ ---JuH4rALGPJfmAquncS_U1du8s59GjKKiG9a8 -Content-ID: -Content-Disposition: form-data; name="png"; filename="jetty-avatar-256.png" -Content-Type: image/png; name=jetty-avatar-256.png -Content-Transfer-Encoding: base64 - -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 ---JuH4rALGPJfmAquncS_U1du8s59GjKKiG9a8-- diff --git a/jetty-util/src/test/resources/multipart/multipart-base64.expected.txt b/jetty-util/src/test/resources/multipart/multipart-base64.expected.txt deleted file mode 100644 index 5d4a189b8dc..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-base64.expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -Content-Type|multipart/form-data; boundary="8GbcZNTauFWYMt7GeM9BxFMdlNBJ6aLJhGdXp" -Parts-Count|1 -Part-Filename|png|jetty-avatar-256.png -Part-Sha1sum|png|e75b73644afe9b234d70da9ff225229de68cdff8 \ No newline at end of file diff --git a/jetty-util/src/test/resources/multipart/multipart-base64.raw b/jetty-util/src/test/resources/multipart/multipart-base64.raw deleted file mode 100644 index 514a6a1ed3c..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-base64.raw +++ /dev/null @@ -1,389 +0,0 @@ ---8GbcZNTauFWYMt7GeM9BxFMdlNBJ6aLJhGdXp -Content-ID: -Content-Disposition: form-data; name="png"; filename="jetty-avatar-256.png" -Content-Type: image/png; name=jetty-avatar-256.png -Content-Transfer-Encoding: base64 - -iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz -AAAI3AAACNwBn+hfPAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURB -VHic7X15fBRF2v+3eyYnOSCQcEMQQUBEhV05xQvvdxHB1d/iq6is1y6or7rgCgqLiJyut+uxrsfe -C57LKaIoCCr3KZBwyJFASICQkJDM8fsjdNJTU/VUdc/0HGG+n09/+pyequ56vs9R9VRrw4cPRwIJ -JHB2Qo92ARJIIIHoIUEACSRwFiNBAAkkcBbDHe0CRBrz5s3Tol2GSGPEiBH+aJfBQDSff7ifgxN1 -ifS70hprEPBsFHS7CLXRJZ519BDqu2sUBBADDdDO/8eMVk6g8UGVGOKWABwQ+miTiBWcbeTBezdn -2zMICSJCiCsCCJPQOyXoqvd1suHGg1DEEtFafV7RLntY3q+ZDOKCAEIQfDu/i/ZLpmCnAUSLFGL5 -OTY22H7HMd0LYFPwVX5j9b6RbsyiFyoqB9UA2N84RQix/kyB8Nc9knVw5B3HJAHYEHzZ9aGeD/V6 -GdgXJru/7HrVxhKKQFh5Bk5dy4MVQXEadv+PVwcr5K/8jmOOACwKP3Wt6Jyd34R6rQjGy1G5l/lF -ygRetQGoNConrLBwEK5VK4mHWI0BUP9j9V2T52OKACwIv1Xh5h23QxBWrlGBBrVG6Bf8p4hARAKs -2uDDaRGFi3DD8VurlpYTZbCLcLxrjT0XEwTgkOCzx1RJwKkGK7unVW3EIwVeIwmVDESw+pxCIdxQ -YcXSsgOn60ApAKttwHzOH3UCUBR+1cYT7n3ZcZVrrWpdEXPL7sM2BitkIPpfXvlUz4WDcGXnY6Xb -MxLtg4XsffPedRARRJUAQhB+SnBVz9klA9k5q9cK2ZlzXLWxWCUD9pwK7Fhd4SZcK7GOaPV+WD1v -RwHw3rcSEUSNABSEPxTBD9c2dYw6LoOKJha9QD9nW/ZfVslABKfIWHRvK1Dxf8NJAk7HNsJhGVBE -4AeiRABhEH4r2+xadp2oDOEiAZE/xzvHe4FWSED0e/O++ZgVhJNkQyUDK1YU77hVOKUkKG1tlcBk -RKABUSAAG8KvokUoIZetZcdE+6JjKhC9SD+zLXqBvMYQDheBgh1SViVflfvzIIuMi+pohwhUy2fH -MqDKK3rvvPctCgoKiSDqQUAGVk18WaNTJQErDZW3bxe8F0htmxsBu5b9j1QbKCIUobf6nKmyqUbG -VYTLClTKqEoCVDl4ykBEAiptgfvbiBKARPvbFX5VwbdDDNQ2dYwC7wWpCL5oHQ5SoMqmqvlDXfP+ -S9UCoI7xnmeo1o/VfdExURlkhM2uqfvy2kb9uYgRQBiE36rgW91WWfPKKjrGg6rwWxV8VQ0hK5fq -OxI9F1Uypta8/5PBqiVl3lf9H6sKivotD6I6UNYfBMdU/ityFoDDws9uh7LPuydVLtG+CHZMfpHw -i66xGzSSQfW9WCFbu1aAFc0vIwBVqLSFUEjMgJ12wCME3n2DrIFoxwDsCr+KUMuOWyECXjlEdZBB -henZtUz4eRaBKhGoakHZu7FKvLxt3n+pQNWForYpWBV+u3VRbQt237X5fyJjARDa36rwyxqbVeGn -ruVti8oo2mehov3tCD27GGWx2zhEYOuu8j5UjoGzZrcpqAq/HUvAShuVHZNBRfOrtAPz/7LHzGQf -ExaAATvaRVXAdYVrVLWVqKyiugByc1VV+K0uRlnCRQRW3ovqe+Ldx7xWgVWhd8ICcILIwtEepP/p -KAEoan+7wq+yiIRfRgqi/6bKztsHaAJQMfWsLj6IG4FZ+I1tFUJg6xzKOwkHyYIps4r2VPkNC7uC -LyIymXIIlxLwCepj3K++HNGwAGSkYFf4WaHWFc852UjNoBqfFTOPFXD2mCa4JhQrIBRCtkO25rUM -qmTKO8du8yB633ZJgAeV9qDSFgzB1wXHzf+hAQ4SgMVEn1CEnyfoqsdUyYBXJvOaVycDFMuzax4B -sC9ZZ4750CDQxnEZCahaASKtFwoZqzxn9r9FsCr84SAAWVul1iLI2oJI8Nn3DuYaAzrnmB9wiAAs -mv52hZ8ScvOaOheOBqqqqQB+w5NpfR7Lm0nA3Ag0WCMB8++peoRCxqqEAM62DFYEXkYWPLDtVaWt -sufZ+7DgaX+eMPPeGSv44PyeJYIAayCSLgBP+GXX2BF8q9uqZADONq8u7D5lAagwPqvtdWZtFmBW -8MH8lgX7Wx6sCr8KMfOeNTjbbBmM+rDbsmfKOye6F/t/5n1eWWVkwLsfC1k7MGtw3rtm17x2wi1L -tHsBZA9WVfjZbd3CcVUiYMtmLj+7zYLS/OZtSvDZtfHCzURgrNkGQVkE5sYkglXhD8czBsRl4mlN -0bYVEuDVm13LCECkIHh1ERGYqC3wyJ591+y9WRIIIISwE4DA/OcJikiIVIWfEm7Zwv5ORVupNlKR -tjLv2xV+dttMBMYiahjU/2mmc7y6qAq/HeuLesZsOdgyyrS9KgmY7yd6n5TAy9qGinJQsQLN79v8 -nlnhZ+vGkkB9eaJtARgwPzT2GK/BqQi/S+GcChGoNFLqBRtQZXtK4/OEn7fwGgb1v8ZxlcZPCb+q -JcYjdJEQiaBKpnasAJHCUiEBOwTAKz+rBFiLj33P7H8YQm/eDypPJAhA9DCNNXue94BVzH1W4F0K -27JGShEBrz4UVBos76XLhN4rKB+7sNYATzBYUA3dqhVGka152/x/FFSFXnQdew9evdmyqDxnXh1E -dZHVQcXiEylOMNfqzDEAYR4IFMKc/ioPlecCiIRbtFYhA1USAGdt3rZi/qua/F7whZ9HBCwoEuCV -l60fj4xVhJ99xjwikBEA75laIQCKFHh1FymqSBIARf68d83+B1snlgx8QGSHAouERUYEIsGnhF9l -W9UakBEAr6GawTbaUIRfRyAR6KZtlgjY50m5Amw52fpYEX7KElN9xux/m8ETXpkGlbkC5vtZ1f4y -C5FSijJLkBJ+83um7m3eDyqb0wQgKiB7XPagVbQMK+gu4rgqCVAEoPqSAXmjFfn85sUs/Kzgs42C -XbNEwFoB5rKZQTV4FaG3Y22Fqjllwq9CfOb/lml7UduwQmR2hd8ruDdbLz8aXADAZA2EjQAUc/5l -2t58nejBqmh8K4sVLUWVma2fARWNpeLr66a1mQSMMogaBY+szJFkkTCoan8rLhhFAjIBYstnRfhl -cQ/KBQiFAFSITKUtsFYe+569CARbRx2BFkD94qQFIKo0dVz2oGWmpwt1gU1WyIOOHTt2LGXOnDk9 -169ffw4Al3YGuq7Xb2qapgGAZoKxb14HVOLMMb/fH6RZjGO8tQg+n893Zm3e9/l8Pr/P5/N16NDh -wJw5c1bm5uaeRjAhsM/b3A3EiwPI3olM+FXcLRcAfefOnU1eeOGFi/bs2dMagKbretAz5T1f83Nl -nl/9oTM7fgD+Zs2aHe/WrVvR6NGjC9q3b1/NqbOs7uZtVtgD9gsKCpq8+OKLvXbv3t2SLbt5n6qD -+dWb2oCx+Px+vy87O/tY165d9z/88MNbOnbsyNZJ5OpwSUAbPny4oP7WwLEAeNrevE2xKWXqU5re -zdmuP1ZYWJgxceLEQT/88MPPf/rpp161tbWpYal8lJGUlHSyS5cuX956662LJk2atA11wm8svOAh -5Rsb4Fljdlyw+mNLly5t8cILL1y6YcOG3kVFRd18Pp8r3M9ChIyMjJIHH3zwjZkzZ64HbQGwWlsk -8DoA7Ysvvmjx8ssv91u3bt2FBw8e7BrJOqWnpx8aOXLkrLfeeus7BL5zLwAPGt69sC2EhQAkg3+o -ByozLynTUib0AQRQUVGR0q1bt6cOHjzYK+QKxzA6der0+e7du6chuEHw3AorFoAKIQvJecWKFc2v -v/76ZysqKlqEucqW0L17928++OCD9/r06VN+5pAo9mGshQTwzTff5Fx//fVPVVZWNnO63BQ6duy4 -6O23335xyJAhpQgkAJ7wB7QFnX/LkGHVzAfkD51nfqoQghuAe8CAAQ82duEHgD179lz9i1/84kbY -i4Wwz5ZaWLJ1A0jiLfv3788YPnz4E9EWfgDYvn37pYMGDXp+3bp1OWgoM1sHYV1gqtOIESP+L9rC -DwD79u277oYbbvjH0qVLc0DHslgSg1MEYEAWBDHOqbgEMt+TbZz1yzXXXHPr5s2brwxnxWIZCxcu -HPvKK690Ap8UVZ6hjAR4ws9bkqqrq1OuuOKKh0tKSjo5XnFFVFdXZ40fP/46KAo7u5w+fTr1qquu -eqCkpKR9NMrPQ21tbdNx48bdArHgcxenCcAMXoxAxd9SCfwJG+Xrr79+7ueff36bM1WKTXi93pQJ -EyY8XV5engJ17a9qKYjcLJ4l4L799tuvKywsvNj5WlvDihUrhhQXF6cj0AJgCYFLDqNHj75q165d -PaNScAJbt24dsWfPnlTw5YZrdTtBAKranr1eZglQfqexH2T+//Of/xwgKVOjRHl5ef7XX3/dHPxe -EatEYBZuoZsFRohOnjyZumTJkusjUF3LqK6uznjssccuA1/ghe5AZWVl6meffRaT1mRNTU2z0aNH -3wh+96qxDdOx0AlAYfIPq/EAlaizzF+tb6g7d+48337t4hv79+/PRni0vqr5HyBEjz/++MCKioqc -CFTVFpYvX94XFv3/CRMm/Ly8vLxpdEosx6ZNm66G3PyHsY7UUGD2j1V6BmRWgLSBlpSUpB05ciSf -Ktj9LZPR1B2fBsLycg9Wn2THgDSgpKQkC3XPwgD7vHl9xuw1ZjIWEUeQW+Dz+ZLmzZt3HVX+pm4N -97dMVqmqLRTV+PB+Sa3wfLNmzU6iTrDNMNc/QIP6fD7XP/7xjyuo/4x2ndLT08sQLDfm8R8B8hfp -dGArpj/Ph7FiAbg/+OCDzj6fT1jHDJeGlzqlwhWf8o+bfxQLPwCUlpZmooHkNQQODjIahqgbkEe8 -MuGvf/aTJk26uLS0tDVVvt+0TMaUDilkHULB+H3V5PkOHTocRbASFCqfGTNmdD9y5Egedc9o1yk3 -N/cAFIJ/cMgC4Gl22XUUEbA+jKwf2uynur7++uvzqML2zXDFrfADwCpC+wNAUlKShgYLwCz85rRS -0SAg9j2oan83ANe77757LVW2NB0Y09o5TXnc48ebh8WaEgC6du1aikAZoKwf7a233hpM3S8W6tSu -XbuD4Jv7bOwNCNUCsDDzr9AHIa6hBJ9qkPWNcfv27V2ogg3MdFGnYxo7q3046hGN3wEA+O+88849 -CHQBgODnKxoNp+p6BfUGvPbaa10PHDiQTxXurrxk5CU5x76vH67BSS/5fNC7d28eAXDb4Lvvvttx -z5497aj7xUKdevXqdQC0vDlqAahCxEw8rS8jAe7i8/ncP/30U2eqEAOy4pcAvi2ntX+zZs2KevXq -VYXgBm7OF9DBjwGoEgA3IPjKK68Mocrm0oBH2zinKat9wMtFNeQ1OTk5x2677bYjkBOADkB74YUX -BlD3i4U6paenFz3xxBO7oKZ0AYSXAILMC8l1Klpf5AaYu/+4DfTTTz9tW11dnS4qrEurcwHiFd+e -9JDnzznnnALwhd/YpmIALAErm/8fffRRu+3bt3ejyvbL5knolOLcEJR3S2pwpJbWlCNHjlydnJxs -1I10QxctWpS3adMmUpnEQp0uu+yyeU2aNDEuUjJFnLAAWNPevC1iIooMeIQgdQEWLlx4LlXIC9Jd -yIzjAMC3Ev+/T58+hvnPE25zirG5J4AnCJbM/+nTp18JSeP7nYOa0usHnj9Ea8qMjIxTU6dO3QJF -//+5557ry0nuDEC065SSknLi7bff/hxi358re5FwAdjgA2X+q/r/UhLYsGEDydjx7P+XevzYUeUj -rxk2bNhuNPj/5mdsdgF4yUCidyDV/qtWrWqxZs0aMt/i2qZuXNjEuWc/t7QWu6vpZzNixIi12dnZ -AP/5BBDAunXrslesWNGVul8s1Kl///6ftWnTxhwhdNYCsDj/nwEV859lYBkZuDhrV0FBQSeqIAPi -mABWnfQK0/cAID09veL6668/huD3a55DkMoG5MVfpAQwadKkwT4fnWA2rq1zmhIAZsk1Zc3UqVM3 -ocE64lmp9XWfPHlyn1ivk9vtrnrxxRcX2Ll3uCwAFf/fjvlvFnRVEnBt2bIlu6ysjMw8i+sAoMT8 -79y5814Emv/mZ2qQgDkGwIIlAF53a4ALsGvXrqyvvvqqN1Wun2e4cFmWc0bn58c92FBJP5sbbrhh -S7t27TwIJoCgtrd37960xYsXd6fuFwt16t2799JevXpVmg5RyjngfTs1DsDYZs183jnetarugAsc -DTV37lzS/O+QoqN9snMBG6chCwBedNFFP0H8bnkxAN41VgjAPWHChAG1tbXsqLoAjG/r3AAZAJgh -15TeZ555ZiOCydFYB7S3yZMnX1hTU0PKSLTrpOu6Z9q0af9lDtMBCxOiMRKQIgme+a8aB6hfVq9e -3WjN/xo/sKaC1ghDhgzZj+AhwMbCmxAEgmuVugBLSkrS5s+f/3OqTOel6Ria41xzW1PhxVcnaGK8 -/PLLd51//vnVqKuPGUHtr6ysLGnu3Lk9qPvFQp169uy54qqrrirjnOLNQRkEW6UP0f83tmXa32z6 -y6yBgMa5ffv2fKog8UwA6yu8oOJBSUlJnltuuYXq3w4nAbgBuJ5++uk+p06dIqdXe7xNSpDUhRMz -DtKaUtM0TJ48eRMahJ80/5999tnulZWVpHqPdp0A+J988snPINb47PEgUnC6G5A9JhJ2EOdlFkDA -cuzYseQDBw60oQoYzz0AKyX+f35+flF6ejrAJ3crBCByAQJSgauqqpL/9a9/9aXK1CZZw+25pHcQ -EnZW+/BJGT1Etm/fvnsHDhxYjmDtDzDtrbq62vXee++RWaSxUKcuXbqsu+222w6d2aXmeBROghoO -AuAF93gCbocYrJKA69///nc+NTFjpkvDBQ522TgNmf9/4YUXHoQ4wYUVfvZjIcb74AVduS7AtGnT -eh47diyTKtPDrVOQbMdmVMScg6dBd5IBTzzxxGbwYx5B7e3555/vXFpa2oS6XyzUacyYMYbvT1kA -LBEEHI9kOrCxthIA5LkAoh4BFwB9+fLl+VRB+mW6HDXbnIasB2Dw4MHFUCcAOxZAvfD7fD73O++8 -cwlVnqZuDfe1dE5THqrx4wMiPRYAevbsWXzTTTeVItjiBJj25fP59DfeeIPU/rFQp/bt2+946KGH -CiCeElwUAwggBMsEYNP/50FF66tq//pA4ObNmztSfxrP/n9BtY8cDqppGm6++ebD4AcAdTTMCOtH -YBcgr7tQagG88sor5x46dKg5VeYHWyY7OuLypaLTqJHEvP/v//5vK+gej/r6vv322+1++umnbOp+ -sVCnu+66y+j3pwhAtoRsAfDYlN23o/2p4J+QFHw+n6uwsLADVeB49v9l2r9t27bH2rVr50Xde2Wf -sejDoLw58UUuQEAc4NVXX/0ZVZ5UHRjrYHrsCa8fb0jSY/Pz84/dc889RWh4DlT3n/7iiy+Skf9Y -qFNubu6BKVOmbIL1z58FBQWdGAgkCu7xfsN9Ccy26mAgfeHCha2qqqqE0WiXBlwS1wlANAH06tXr -MAInADHWhuAbg39UJwIRuQCuf/7zn+127txJTvhxV67D6bHF8vTY3/72t9vAb4vs89E/+uij3G3b -tpEDyGKhTrfddtsiWNT0onORygUw1lZjAJRJGrQsXrw4nypIr3QXMuI6AYgOAA4YMOAoAs1/INj8 -5/n/vC4xkgDmzJlDjvqLhfTYli1bVj788MP7oab9tVmzZpGj/mKhTtnZ2aWzZs36Hg3vj/26tIpV -4EgQ0IpksS/AvC0TfiEZrF27ljT/B8Xx8N9jHj+2n6Ljwtddd50xwQX73MyfFpe5AFQMQAfg+vLL -L1vInvUtzZNwTqpz4db3SmpwWJIe++tf//rHpKQkQGwB1C8rVqzIXr16NWnRxEKdhg4d+nlqaipL -5ux7FW2D3bZEABYDgHb9f5G/zyOCAALYsWMH2SjjOQC4WpIA1KxZs+o+ffoYE4CYnyMvAYgXAARo -Aqi3AKZNm3ahLD12XJTTY7Oysk6PHz9+D8SuaEA9p06d2i3W65SWllYxZ86cFRALOLtQ34AM2QWg -/HrK/7dq8lPmf/01mzdvziotLSU/0zQgM1oTIIUOBf+/DMHCb352ogFAlghgy5YtmV9++eU5VFmu -djg99sOyWhRK0mNvv/32XZmZmebZcM0IqOe2bduaLF26lPzKTyzU6eqrr/7yzFegWa3P++ajkhUQ -zoFAsmtY7S86LyMCbuP8+OOP86kCdEzR0dbJkRsOY6XE/+/Xr5+R/st7TrzuPzsEoE+ZMqWn1+sl -H+R4BzUlAMyUDJFNTU31PPXUU4UQt82Aek6ZMqVLrNcpKSnp9KxZs76CdYEnF6dVoshKMNaqmp/X -GAPO7du3j/xYQzyb/7V+4AdJAtCVV155AnwCEEX/WQLgvZeAZ3/gwIG0Tz/9lMy0/FmGC5dnO9es -lp7wYL0kPXb48OF7WrdubfSlaSDqePDgwVSZ8oiFOg0aNGhl165dK8D/yrMoFiDtGVCulcT/tyLo -vGMiEmAFXaiZmjZtepoq/4VNXDgh6V6JVayv8IKaACglJcV32WWXVaJhfjsV7W+ZAKZOnXre6dOn -SSYd7/DkGLIEGbfb7Zs0adIu5jBreZp9/86xXieXy+V99tlnvwAt9LJjYe0F4Jny7MNlz4M5bzUO -INT+APScnBzyKT6xrxpPSD6qEK/w+/3Iz8+/9EwQy28cQ4NwQ3SMgKZpda/P7Xb7+/fvX7Jo0aK2 -1A+6puq4Kce5IbJrK7z4UpIee+211+7v2rVr1Zldsv2Vl5e7//a3v3Wi7hcLderdu/ea/v37l6FO -mM09ADJXIOIugKrAy85bsQx0AFqLFi1IC6Axo6amRi8uLibTcUPFvHnzyOQYAHisrbPpsTMlUXJN -0/DUU0/tNHYRHN8w1hoAfcaMGfknT54k1Xu06wTAP3HixM8hFnrZQsYFlAggDPn/7LFwaP+A/by8 -POmTTMA5tEnWcIeD6bG7qn34qJQeIjto0KCivn37njQdEiqbmpoa/e233ybjGbFQpx49emwZOnRo -EQKFmmcFUNpf5PqFxQIIt/8vMvVFcQG9pqbGNXny5EvDUJcEbOIhp9NjD9WopPzuFJwKansvv/xy -uyNHjqRR94uFOj3yyCOfo07gjUVGBFa6A21ZN5SZD85a9Fu7Zn+QZTB06NBrNm7cSLJ5As4h26Xh -fgfTY4tq/PighDbwLrzwwqM33HCDMTUWFZvS/H6/9uqrr5LfjYiFOuXn5xfee++9hbCm/S3FA5wY -CMTb51kAvPMiF0Do/69fvz57yZIl5Hx0CTiLB1s5nx57WqIqH330UVHkP2j7vffea7Vnzx5yEpNY -qNOvf/3rpWgQelXtb2ksgNQCCNP8f+Ztu0E/rv//5z//WTqEMwHnoGvRT4/t1KlT+Z133nlYcDpI -yTz//POk9o+FlN+WLVsemjBhwhYECroXtPBbJYKQA5wy/998zI7gU0FBDYC+Zs2ajiHWIYEQ0DJJ -Q0sH02P/VFyDcsn4jbFjx+4E3b1Z34Y+++yznM2bN+dQ9xuVmxz1Oo0cOfILBAq8VeGXuQJAmLsB -zaY975jMPZBpe27//44dO8gx3C91SsWNzZwd8HhXQRW+Ib7W+0jrZEc1ipM47Qd6baiA6EvkWQ6a -yad9Sim/p377298eFJwOanMzZswgtb/TKb8qdcrOzi579tln1yDY9JeNAZBpfTBrywRAaXf2OjIQ -Y3MJIIG1a9dmHz9+PIsq8P80c6ODg19t9QHYWEk7c9c2daOjg2VwEqtPeoXCD4AcoRgq3iupQbEk -Pfbee+8tSE5OZhs3wGlzq1atyvr2229bUvcbkZOEzg6n/MrqdPPNNy9LS0urRaDgq2h+2ci/AOEH -QncBeBCRg13fn7etAdA//fRT0vxvl6w7KvwAsKXSS5pzOoC+cZyHIJuGvJ1D/WQ+yNNjs7OzT48b -N24fxOZ/QJuaOnVqZ2nKr4PDflXqlJ6eXjFr1qxVoIN/FCGwQ4FJIiClw0YAUOb/866T+f/C7r/V -q1d3oAoTiQQgmYBc0MTlqJnsNGSzEDk1x+KHpbUokKTH/u///u+ezMxM3gsIeuA7duxIX7JkCTmU -eUi2Gxc5mfKrUKdrrrnmmxYtWlQj2O9XsQJ45r9jQUCRUPPOh+oCcK2B7du3k/5/JD4AKsvTj+dJ -SIG6LxFTGODQhzFVUn4nTpxYCEXtP2XKlHM8Hg/JxE4n/cjqlJycfHrmzJnLYT3oxxsLoOQGWCEA -KpgnIwLzdSIy4Ab5ILAGDh8+nHrw4EHSn4uE8MkIIJ7TkHdJpiEHgP4O1O+LEx6sk6f87mvVqpW5 -L80oaJCQFxUVJX/44Yektdgnw4UrHEz5VanToEGDVnfp0uUkxOY+zwowa3qVQUAwr8PtIKsKu4rp -TxGEPm/evHY+n0/I6BkuDb3SnRW+gzV+7JOM5ohnApCR23lpOlq4w+/eKKTH+p5++ukCzimuxTl1 -6tRO1dXVdMqvwxN+yOqk67p36tSpy6Au+FaDf9ZcgBD8f9lxKya/qFtQ+/rrr8kAYN8MF5x2vWX+ -cfsIBCGdxLflklmIHSC3dZVeLJOkx1533XUHzjvvvCoEazQzNAAoLy93/fWvf82n7tclVcew5s4N -+1Wp089+9rN1/fv3LwVf+FlBp4YDU1YAEPisbFsAIjPf2KYsAN41MisgiAg2b95M+v8xYf7H8SzE -gIp7E36TWeYna5qGiRMn7kKw0PPoXps1a1aH8vJyOuW3TbKzKb8KX/mdMGECL+mHHQOgEgRU6f6z -HATkPlwECrXKdXYDgAFrj8ejFxYWkhHdSAjfSmLwDxDf5n+Zx48fJZ384a5fQbUPH0rSYwcOHFjc -r18/c8ovjwg0AFpNTY321ltvkUlirZM13JHrnPmvUqcePXpsHTp06CHwyf1McAAAIABJREFUhd+K -4Ku4AQZs9QJQRjWl3UGcE3bzgSP8ALT58+e3On36tPDb7S6tzgVwEpU+PzadkgR14pgAVkmmIW/h -1nBeWnj1po2UXzJC+corr7Q9fPiwNOXXSS9NpU4PP/ywof1ZEz+UYb9mMgAEFgG36mH+AKixpghC -lP/PtQCWLFlC+v89012OZnIBwPeSEXKZLg09HQ5COgmZ+R/u6H9xrR/vS9Jje/XqVXrjjTeWQWz+ -17ebWEj5ValTfn7+7vvuu283goN/IguA91EQ5ZF/LMI5H4CxttsDQPr85vW6detI/z8Smlc2ACgS -QUgnIZuGPNz9/y8V1VhN+SW1//vvv99y9+7dZMrvA62SHR2kpVKn0aNHL4V1wVeNA0CwXb+oEICK -wFPXhUIEXAtAlgAUCd+7MQcAa/zAGsk05OEMspZ7/XijmNaUnTp1Kh81alQx6IE/xlqa8pvicMqv -Sp3y8vKKJk6cuBlqkX+egFvt+guCnYFAon3zMVFwUFXzC4V//fr12ceOHSO/3+608PkAfCchgHj2 -/9dXeEGNWE3WgD5hHDL7p+Ia6ZTtY8aMEWn/oHY2f/78nE2bNklTfls5nPIrq9PIkSNZ7c8L/qnM -AswjAgi2bfUCyGBH2GXBQK75/8knn5Ajuton62if7Gzf+9ZTXvLlxvtnyFdIyK1PhitsgbPTvjpT -mUJeXt6pMWPGHIBc+wOANn36dFL763A+5VdWp+zs7GPTpk1jU35FFoCKRaASC2AR7AKE+AEQ3jFe -XMA4Jwr8CS2A7777jgwARqT7T/advkb+GfJwmv8fKKTH3nfffbKUX2NbW716debKlSvJIeLDmyfh -XAdTflXqNGzYMFHKrx1f32r/f33hQg0C8twCUUzAiuYXTgCydevWdlThIuL/S/r/4/kz5IBCAlCY -BgD5UNdNRiErK6vmd7/73T5Ign5noE2dOvVcWcqvk0k/KnVKS0urnDlzJpvyyzP9Q035JbU/ICcA -mTBT++bjdoOBASRQUlKScvDgwVZUgSPheycSgMJTv49Ka7FLnvK7Oysri3rg9e3lxx9/TFu8eDE5 -QOyqbDcudjDlV6VO11xzzTd5eXlVsBb8sxMMBHEcQHhiACIioISfmu9PGAOYO3dueyoBKBJ974dq -/NgrTQBqvJ8h75qqIzdMwTPZV3FSU1O9EydO3I3AxmwgSCk988wznaOe8iupU1JSUs3MmTO/gnzY -r8j/V9X+gET7g40BhGkCEGOfRwwqml44MnD58uVkADAWEoDi/TPk0gSgMLk3y054sFbS1XjzzTfv -bd26NSVR9W2oqKgoSZby27uJC1c6mPKrUqdBgwat6tq160nIh/1SCT+h+P8BCGc3oCjQZ3cJChDK -EoASE4CEjkglAMkSZEwpvyraH9OmTZOm/Do53Rcgr5Ou695nnnlmGfhJPlZm+5FF/wGBwDPnSQIQ -RfdF/j7vGhXfnzf+n5cA5JIlAEVC+GQ9APE8AChSCUDrK71YKv/K78Fu3bpVEZfUt6Hy8nL3+++/ -34m6X5dUHcMdTPlVqVOfPn3WDRw4sBRiwQ/HhB8i7c9FqDEAnnCbj7PnWMFXngBk/vz5LaOdAHTK -58dGyawu8WwByBKAmocpAUgx5dc81z+p/WfPni1N+X00BlJ+n3zyyVCH/bJCbkX782IDYZ8RCAgt -2i8KAGqyBKALItD3LksAynZpOL+RJwCF+oQLqn2YJ0mPHTBgQHH//v1PkhfVQaupqdHffPNNMuW3 -VZKGOx1O+ZXVqUePHtuGDRt2EKGN8ZcF/wAL2h8wWQAhDgCizH3eNSoWQYAFEA8JQP0yXY5qGach -TQAKwzN+Xi3lVzbst75tvfrqqwopv8mOpvyq1Omhhx5iJ/xQMf/tDv5R0v6A2AVQEXjqOrvan2cB -6AA0aQJQDAQA47n/XykBKMQMwMMK6bEXXHBB6f/8z/+UQnHgz8svv0wO+81yaXiglXPaX6VOHTt2 -3HP//fcXQJzzb2fCD5YQAIvaH1AfCCTaN47xgoOi85T251kAmlICkMPC50PdV3IoxLP/H4kEoJeK -asj/AMiU3yBr8v33328p+8pvJFJ+ZXUaPXr05+Br+lAm/FAN+PkF2wBCCwKGIuwi7c81/2UJQB1S -dLRzOAFo2ykfmQDk1oBL4pgAZO5N7wwXQhk+X+7140+S9Nj8/HzVlF8Aaim/Dzmc8iurU15eXrHp -K79Wp/yy0+8PwT54+zoQsQQgSshJ81+aABQR/5/2jy9q4kK67mwQ0kk4nQD0xuFalZTfAk3jPkO2 -nWkLFixotnHjRjLl906HU35V6vSrX/1qqa7rHqhl/VH9/lYCf2COs9v1CMeMQFRMwI7fH0QKMZEA -1IjNf8DZAUB16bGnyWvy8vKqxo4du990iJKsGEn5peuUnZ197LnnnvsB4mQfs8DzpvqiYgCq/j7l -EnAJQKTdWR+ft89eS1kFIhcgwAI4kwBEpndGJAFIkgEYzwRQ4HAC0F+P1qKohr7/6NGjjZRf9sKg -NvTdd99lrFixgkwKu7l5Ero4mPKrUqehQ4d+KfnKr8qEHyoDfUBcAxBkavcJiYjAivDzAoBB5v+8 -efPa+3w+YTmzXBp6OpjdBQBFNX7skSUAOfSNvEhA5v93SdWRZ9OU9gGYc5DWlJmZmTVPPPHEPtMh -UvvHRMqvpE5paWmVs2fP/hZ8rW9l6K9qFyAPpPYHQnMBKFfAvG9F+weZ/8uXLye7//pGoO99rWT0 -3zmpuqO+ptNw8gtAH5fWYqdayq8HCtp/586dqYsWLSJdwiuz3ejtoFJQqdPVV18dKym/QqYcMWKE -X7cRAGTPWxV8mSUQsL1p0yayByAS/r/s83fx3P8PqExwat+6UUn5nTBhwh7F22lTpkyJi5TfGTNm -LIe68DuZ8ivaBwCwb5b3YEVmPXWNqu9P9v97PB7X7t27o54A1FTSj7yh0ovbd1F5K7ELvx+OJQB9 -ecIjHVx0880372vbtu1pBDfooDZUXFwsTfm9uIkLVzmY8qtSp4EDB67u1q1bOeSTfUYk5ZeHESNG -+IFgAjCgYhVQpKCi5aXEsGDBgpbV1dVkAlAkJt/MlpgAW075sOWUZDRInCLHraGbzQQgmaZ0uVy+ -p556iveVXx60adOmdaqqqiKl2/GUX0mddF33Tpky5QuIR/3ZMfVlg39YyKyDhvLKLlAESwrmbUsm -v3l7yZIlJNtfGKHJN2UWQGPGVdluqR/Iw4ZKLz4/TscWrrnmmoPdu3c/BQXf/+TJky5Zyu+5qTpG -OJjyq1Kn3r17r7/00kvZlF+rvr+dngBK2APOGdofUJsPgHfMirlvJRgYsL1u3TqSAAZGKPe+ZbKG -wXGc5x8KRuXZEygLX/kNOsU7Nnv27A4nTpyI+ZTf3//+99RXflUm/7Bq9gf8Pyxof8DapKAi/998 -3o7QCy2AWPgCEM4U5oMu6WguiwY2Moxrm4Lrmlr3pwurfZhXJk/5HTBgQDnEDbW+fXg8Hu2NN96Q -pvyOcjDlV6VO3bt33zZ8+HA25Vd1xh/RqD/R4B9wjvMg1P5AIAFQAT4WPAuAOk+5ANyhwOvXr88u -KyuTJABFru+9bbKGd84ls04bFYY3T8KzHYThFxLPH6qBZIQsxo8fz9P+XKh85XdsBFJ+ZXUaO3as -ecIPWX+/KPKv6vdTUX4l7Q9YjwGIVKBdM18UHJQmAEVj8s0bm7kxoV2KtFsw3vHzDBfeOzfNlu9/ -uNaP9yTpsT179iz7xS9+UUpcEtA+Xn75ZVL7RyLlV1anDh067HnwwQd3QT7qz27kHwgWfFlXn+0g -oMz/Nx+zY/oL/X5jPxYSgHj4Q/sU7O2TiRkdU3F+ejxP/xGItskaft0yGR+el44vzk+H3Zm/XraW -8ittoB988EHL3bt3Z1HX3N8yCdkOBmpV6nTmK792R/3Z6ftXJYV6sOY/IO4GBIIFnT2n4jKo+v1B -RLB169aY8P95aJWk4bE2yXisTTLWVXqxS9KPzmJXtQ+T94uHkiYlJfnfeuutSpdLuY4aAEydOjV1 -x44dwh8lacAL+Wkwu/WaBpyXquPCMIycO+n140+HpZNjnLzrrruKiUsClMbzzz9Pav+6lF97rooK -VOqUm5tbHIav/FIj/SA4BuY8tc+F0RQoYeYJtHnffNxOAJC1DIwEoDyq4LHy+a3eTVyWh53OlvQl -X3LJJd5Ro0bxLmIHydRj5cqVbkr4AWBUXjLub+VcN9kbh2txnJo0EXVf+dU0TWnAysKFC3M2bNjQ -nLrmjtxktHbQFVSp069+9asvTCm/vL7/cET+eTEApedIwUoUTUQEvICglQCgrQSg+J58UzL2fsAA -NtwsYvf6dzJ9+vRU6p5Op8fW+NVSfh966KEDxCUB7WT69Omk9o+FOmVlZR2bPn3691D/uIfdvn9A -rv2F1/HMfyD0gUAii8GK9g8y/2UJQPE++abs45uDBg0yM4S0i2fr1q2u+fPnk5IwrHkSujqZHltS -i0OS9Nh77rmnIDk52WjgAKHBvv/++4xvvvmGTPmNhTrddNNNX6WlpXlgX/hVtT9lFZAQCT9AzwfA -O2ZH21sJDMZMApBT2FntQwmRe69pGksAMvhnzJiRKk2PdVBT+gDMVkj5HT9+/D7ikgALUynlN8p1 -SktLOzVz5syVoH1/0badwB8PUu1PwQ2xwPMEnbomVPNfA2InAYiHE14/vin3olLWIUxguWRikTZt -2vgWLFgQ4KhTgnDs2DH9H//4BxkFOz/dhYJqHwqqfchwabgiO7zTl31SJk+Pvf322/c0bdrUnPLL -i2doALRdu3alLly4kGwDV2S70cfBPBCVOg0ZMuSbVq1amVN+eb6/yBpQ6fqT+f9SUNofCIwBqLQI -ihRCNf+VEoAiPfnmzmof/lvmwYLjHqws90AycU7IOHjwoH7HHXdkhPOeW08FZitmuTTc0tyNUXnJ -YSFT2RDZlJQU4yu/KjC+8kva9o6n/ErqlJSUVMt85ZcVfqqrj7cWEQIgFnhbWt8M1SCgiltg3uZp -/CBfn3dcmgDUxIUmEZp887/HPBj+4ylY6+SLfZR7/XjnSC3eOVKLrqk6lpyfbntW5a9OePBDmFN+ -586dS7aBi5q4MMTBlF+VOg0cOHDVmZRf0UAfGQmoWAIAX/uLEHBOpv2B4BhAJPx/Uf+/DpUEoAhp -/w2VXty+s6rRCT+LndU+3LGrSjrMVQSFlF//ma/8qkB77rnn4iHl13fmK7+ygT/h6PrjCb1KbEAJ -qslAsnPhCABqQGwkAB2o8WHoj6dQ6XPY3o8RfFPuxdQDdMCLh42VXiyRpMdeffXVB5iUX6H2V0n5 -7ZyqY0SOc2MZVOrUu3fvdYMGDToKNa1P+f+UFQA4rP2BBgIQCTN7zOo25Qqwwq9v3LgxJhKARu6s -knb/NDY8e+A0lkvmBmQh05RnUn6Vtf+cOXM6HD9+XJry6+T0DLI6AfA/8cQTbNIPL9qvEgewq/15 -27ag4vixRGDeVnULqLH/9YTw8ccfk+Z/foqONg4nABVW+6Rz5DVG+AD866g6Aeyu9mGu5Iu4/fv3 -Lx44cOAJBDfUoLZyJuX3HOp+LR1O+VWpU7du3baPGDHiAPhTe1kZ968S8QdnW7qvqv0Ba/MBmI+F -Ggfgmv+rV6+Oev//shPWtGBjgmzIqxkq6bHjxo1jtb8fArfytddea1tcXJxO3W9s6+SQPk8mg2LK -r/k7fyqRf8r0p6L+4BwLq/YH6G5A3j5LCLy1SMCp/n8dgL5t2zba/4/A+H/ZHPnnp+voGafDkP1+ -YG5prTCweVwxEnik1o93Jemx559/ftlNN910FOJgVYBCeOmll8hhv5kuDQ+0dE77q9SpQ4cOe3/z -m98YX/mV9f1bMf2N40AwGbCQWQOWwA4EEvn/4Oxb0fIyC0AvKSlJOXDggOQLQM77/zLzf2K7FPzS -wXnnnMTuah/+TZi4qhaAxZRfM7ja/69//WteYWGhNOW3qYMTMajU6Z577mGn+xLN8GveZoWcp/kN -8DS+6DourJj/gPUpwUTCzztGxQCCzP8PP/ywHZUAlO3S0MPh/PviWj92S1pBJGchCjdk5KYyyOmk -14/XFVJ+77777iLTIVL7y77ym6w5n/Irq1Nubu7hp556ypzyKzP3Zf6/LBbAQ1i1P6A2KaiqayDS -+rzIf9Dx5cuXk/5/JBKAZF/IicYsROGEjAB6N5E/4bcU0mN/85vf7DrzlV/zhdwHt2jRombr168n -U37/NzfJ0eCvSp1uu+02NuXXagDQSsRflRACYFX7A/xuQNF+OBdeAlDU+/9l/n88fwAUkH/iXPYF -oBo/8KIkPTY3N7fq4YcfPkhcEtAWVL7y+3hb57S/Sp2ysrKOn0n55XXzqVgEvH5/lei/GbwAYchg -JwW14/+z+yJTn0wAKiwsJL/3FgnhkxFAJIKQTuG4x49tko+XyJ7x30pqcVCe8luYkpLiRWBD5arv -NWvWZH799ddk3OemHGdTflXqNHTo0K+aNGlSC2sz/lAWQCjjALiwo/0BdRdA1dcX+fykBbBo0aK8 -aCcAnfL5sUHyEdB4tgBWnfSSLSkvScO5hKD5Acw+pPSV373EJQHt4Jlnnuns9/tJ297JYb8qdUpN -TT01a9asFYjjlF8KhiCy4Pn/IgtBJepPzgC0aNGijlQhL2oS3vRVHn6o8IJyA+N/FiKJdSMht0/K -PNghmftw5MiRbMovIND+BQUFaQsWLCBTfi/PduPnjqb8yut09dVXRzPlVwl2tT8gHgoMZp8lBKu+ -vogMNMRIApDM/I/3WYhWyPx/Se/GTMnkGAopv6z27yRL+R3n4IQfgLxOSUlJtdOnT/8Koaf8ysx/ -gC/0KtZBSODFAKh983GrgT7hAKBYSABaKZmoI55nIar1Q/5FW6J+y8s9+F7y+2HDhu1r166dOeVX -iCNHjiT/5z//Ia2+C5u4cI2NrxKpQqVOAwYMWN2jR49wpPxS5j8Q+Mxk2j+sRCBiYBERWIrsq1y3 -cePGrGgnAPkArG7EPQDrK72gLN1UHbiYMLVlk2O4XC7/U089VUhcEtAGpk2b1lGa8uu49pen/E6Z -MmUZ+JF+p1J+WSLgbQcgFPMfoOcEVNX0MlIg/f9PPvmE1ASdUnRHp30GgG2nfDhBDION9CxE4YbM -vflZhguiR7yp0ovFkvTYIUOGHDj//PMrVcpSWVnpeu+998ikn3NSddzi4GhLlTpdfPHF6wcPHlwC -esSfKPBHjfqzov15LkFYwdPUMK3NoIJ/qlZAEBGsXr06Bsb/042hV3rkZiFyAislA5wGEhaWQnqs -OeWX10ADFMrs2bPbx0HKL8aPHy9L+VWNA4hiAkCUtT9g3wIwnxeN8FPy/2VfAIpIAFDi/0fqM+RO -wW4PwJ7TPvxHkh7br1+/w4MGDeKl/JqhAYDKV37zkjTc5WDKr0qdzjvvvO2//OUv90Mc7Vcd/BNK -H7/j2h8IJgCRBWDHLeARQ8BSWlqaLEsAorRTuBBqF1kso6DahyPUNOQA+gvqF4av/AZYja+//nqb -oqKimE/5HTNmjDnl1+rAH1m/vwGRFRAx7Q8Em+mAPWEXaXuWCALWsi8ANXU7nwB0qMaPvafpvuB4 -TgCS+f/d0nTkcLLsSmr9ePcIbSr36NGjbNiwYeaUXx7q29ZLL71EDvvNdGl40MGUX5U6tW/ffu+Y -MWN2IXwpv6pmvxkR0f4AbQGITH7WzOftiwKAAYs0ASjDxQ1GhBOyz3TFfQKQxP8XWTcvF9WQPQcA -N+VX2Kj//ve/5xUUFJApv/dFIOVXVqd77rnH7Ptb6ftnfX2ZGwDiOIlwaX8geByAeW0+bjfiT8YA -pAlAMTABSDyb/4CCe8NJAKpQTPm95557iiAeqMIG/6Qpvw87mPKrUqfc3NzDTz/99CaoCb9K958K -CbBgn6dj2h8I1NwAX9uz+5Sfr2wReDweV0FBQdS/ANSYBwCVevz4UaLyePV760gtjknSYx988MGC -Mym/gLiRagCwZMmSprKU39udTvlVqNOtt94qS/kNV78/iOMRhcgCUNX4smi/cFm8eDH5BaAkDY6O -AweASp8fm0413gFAKglAXZiIW40feEGSINOiRYuqRx55ZD/4DTdIip977rku1P10AI+3cTblV1an -zMzMEzNmzJCl/MqEX4UMAHXtH4Rwmv9AcC6Aivkv8/9VXAFd9gWgSCQAfX9SngDUs0n8EoDM/OdF -//+ulvJbwKT8CrF27dqM5cuXkz09Q3PcOC/NuWCvSp2GDh36ZQgpv7Lgn4oFwIPjVoF5TkC7XX2s -0CuRwNq1a6Pe/7+ikScAyQYAsb0bfthK+TU3Uo3Z1qZMmXKuPOXXOe2vUqfU1NRQv/IrIgFK8HlF -heAcgPBrf4BvAaj4/7ygnrL2B6D/+OOP5AQgkfC9G3P/f40fWCOZ32AQU79PyzzSmMH/+3//b0+z -Zs2MlF/S9y8oKEhdsGAB+Z4vy3LjEgddPZU6DRkyZEWbNm1OIbSUXzskQAl0RGIChvAC6kE/mQUg -XbZs2ZJVWlpKJwBJpqcKFT4A3zXiBKC1FV5Qwxt4CUAzJZoyOTnZe+Y7f0pBq2eeeeYcacqv49/5 -o+vkdrtrZ8yY8SWs+fyqpr6K9vcLtgPghPYHGr4LwJpuxlrW3WfL/P/kk09I//+cVB2tkpz1/7dU -elFODAlzaWdXAtDX5V4pId50003mlF8y+Hf48OGk//znP/nU/Xo1ceFaB1N+VepEpPyK9u3EAwBa -0GX7joFnAahqf8ua31hWrVoV/fx/ScO4MM4TgGQDnNgh1rLJMc6k/O4E7cPWH582bVp+9FN+6Trp -uu77wx/+8AX42X6q3X92uvyA4OcYce0PBFoAoQT9LJHB1q1bY34C0LhPALIwvmHzKS8WSdJjr7rq -qgMXXHBBJcQEYLClv7Ky0v3++++TST+dUnRHP7CiUqeLLrpo/eWXX34U9sb8Wxn1Z8XXj5j2Bxp6 -AYKitxBr/6ARfQqLy1iXlZWl/PTTT3lUoRIJQKFhR5UPR4n+TQ2BXYCyyTEA4Mknn9wBcYMOMJVm -zZrV4fjx42Ro3/GUX4U6MSm/ouBfOFJ+AZoUIir0ZrDdgFai/VaFXwegf/zxx22pBKBmbg3dHU4A -OlDjw0+NOAFIRm7mBKC9p+nPhQHAJZdcUnzZZZcdA9+f1Uz7msfj0d58801y2G9ekoa78pwz/1Xq -1LVr1+233nqrkfJrNdVXReuDs89CKvhOmv9AYDegai+Arcg/zhDBV199Rfr//TIjkQBEC0i8JwBJ -PwBi0v6KX/n9EXQjN+B/7bXX2hYVFTWh7jemdTIcHPdjJeVXZbYflVF/oqCfivY3I+KWgNkFUA0A -WhZ687Jx48ao9/835vH/gIL/f6aLtaTWj79I0mO7detWOmLEiMNQGKgCQHvppZe6UvfLiEDKr6xO -7dq12zd27NidkJv+vJiArOsPgmMspM/Tae0PyF0Aq9rfRW17PB7Xrl27WlMFioT/35gzAEtq/dgp -/cBpXf1eKZanxz7yyCPboRbM0v72t7/lFRYWNqXud1/LJDRzMOVXpU5333039ZVf1S4+O25ATGl/ -IHgcgBXtL7IIXBAQwdKlS/OqqqqimgBU4fVjcyNPAKJgJABVeP14rViqKcvvvfdeUdKPGRoA/+zZ -s7tR94tEyq+sTi1atDg8efLkjbAe+GPNfjb4J3OPzIgJ7Q/IXQBW44cSAHR9/vnnpPl/cROXo74h -AHxX4SX9w3hPAJL5/0b0/22F9Nj7779/m67rRgMHAhusWY37Fy1alLNhwwayd2dkbpKjsRWVOv3y -l780p/xS2p9n9quO+rPrDkQcqjGAUKP/LgD6Dz/8EPX+//2n6WfdN94TgKTujRu1fuAFycy4zZs3 -P/X444/vRkOjZ+FHQ7vwTZs2rTt1Pw3Opvyq1CkzM/P4zJkzV8Net5+VXgBALPAqsZSIgR0IZN4W -DfqxJfwA9O3bt7ehChOJGYBkU051S9OxT9JFGKuo9QPrFL4A9PejtThQQ9fxjjvu2J6amkol/dQ/ -yO+//z5zxYoVJLkPzXGjm5Mpvwp1uvHGG7/MyMiogTXtTwm8lWCgCEHnImX+A/aCgFaCf/XLtm3b -so4ePUrOCReJvvemEo55uagGLxfJB5HEI4wEoHsLq8jrmjRpUjNx4sQfETyoxYDR968B0KZMmdJD -mvLroPb3A5gtGfabmpp6avbs2d+AHvYbzgk/2GemEhuIOEQugB3tzwb/Asjgs88+IzVE51QdLR1O -AALkFkBjxs8zXFh8zIPtkjD5Lbfcsr158+bm7/zxCEADgJ07d6YtXrz4HOp+g7Nc6Ouge/dZmbxO -V1xxxTdt27Y1p/xa1f5W/H9w9nmIqvYH+ASgc47xjltyA1atWkWb/xGKvLdM0uHSIB0o0hhxU06S -UsrvpEmTtkCs/QFTO5g0aVIPj8dDvjwnJ/wA1FJ+p0+fzkv6Ue0C5Gl/HiEAYu3P2446qG5AtqvP -zug/fdGiRS1XrlzZ7rvvvsunChKprrfWyRomtU/B0z/RjaaxoUuqjvNSdelHUK+77rodnTp1YpN+ -2Oi/BkArLi5O+eSTT8iuvwvSXbjOwZTfb8q90jr17dt3Va9evU5ALvyhaH+AFnTZfsS1P6DWDSgS -fiEhLFu2LO/NN9/svXz58l7FxcW5KgVxegIQM55om4KvTnix7ATdZdZY0Nyt4dPu6Xh0bzV5na7r -/qeffnoD6gRBFvzTJk2a1K2qqopM6Yv2hB+apvkmT55sDPwxd/+xAq6S+qsyEpCyBmJK+wPqQUBl -8/+qq666edmyZYOtFKKZW0N3pwcAmKADeO/cNPTZVEF+NqsxIFkD5p2XjtM+YOExyRwBAwcW9OnT -x0j6Ic3/iooK97/+9a8LqPvlp+i41cGU3y2nfNI6XXDBBeuGDBlIyrxuAAAUWUlEQVRyGIHCT5n/ -rPBb8flFiEntD4j9fVkvANc6GDt2bF+rwg/UDU6JdGiudbKGhd3TcUduUlxP/EGhZ7qOD7qkYVCW -Szo5BgA8+eSTa6BmJnv/8Ic/dD1x4gT5nT/nU37ldRo3btwiqAm/1aHAVgKCQAxqfwDQ/H5/Hhoi -+C7UWQXG2g0gybQ2luQzS/32Bx98cO4999zzmMfjsUz5Mzqm4jGHZ4ehUOH148MyD94vqcUeyTh6 -FrV+Pw5Jppx2u91+j8cjFAWXBrRN1kMmQQ3A+ek6bmjmxg3N3GifXGdV7T3tQ7f1FeQU6L169dq3 -cePGj9DQyAF+9B8ej0dv27bt3UeOHBGO+89N0rC7d6ZjIztV6tS5c+etBQUFfwRQSywe09q8qMYJ -VEgBIMggWtofsJ4NaNb69fuHDh1KGzNmzL12hL+pW8PoPOfMRBVkuDTcmZuEO3Otl+O9klqMLhD3 -q7dp06b20KFD5I2fbpeCCe2ci5T/8VANKSgA8Oijj36HuoYv677Spk+f3oUSfgAY08rZlF+VOj3w -wAML0SC8PKEW+fts1F8m6CCOs4gpS8AcA4BpWxYHCPD7//73v3cqLy8nP/0kwuNtkuO6b1728c2q -qiqychkuDb9p5Zz1c9Tjx1+O0JNjdOrUqWjUqFF7Edz1x0b/AUB78803L6HuFwt1at269Z7HH398 -GwI1uh0S8HO2Zd1+MJ0DcT6q2h+wPicgd5zADz/80MHqHydpwOT2Kfidw33ETkM2ucixY8fI7o1f -5zmbHvtqUQ1O+eg2dt99932LOuEQEUC98L/22mvn7N+/vxV1v1io08iRIxeAb86HQgIisz4utT8Q -7AIA1shAA6Dt2bOHHORzaZYLF6S70ESvM/l7prvQu4kLreN41h1A7eObFJI04BEHYx+VPj9elaTH -5uXllY4bN24bghs7D9qf/vSnn1P3i4U6NWvWrHjGjBk/IFDoWcG3kvCj4uOzUOkdiDpY7WTHCtBr -amrIN35fy2T8qkV0/XwnsFry8U1d1/0+n0/IciNbJKFdsnOO8tuHa1EmcZRvv/32FWfSY9lGzkID -gL1795ITusRCnYYOHTrf5XLJAnqyUYCU6R8W3z/a5j/ADwIaUO0W1GTBvzhX9ELIUm8p4dcAPO6g -+6OSHpuVlVU+ZcqUdaiLgssasXbo0KHUkydPZoruFwt1atKkybEXXnjhG8h9f1nGHzUOAGgE2h8I -tABYF8C8zVvqfycbC57SSPvZZR/fpHB5ths5bg2HHRqI9FFZLfZL0mNvuummFRkZGdUI1HSAgAC+ -+OKLZtT9YqFOV1555cKmTZtWg+7SMw/6sTv8F8RxFjGp/YHg7wKIhBym82CuhdfrJQNdjdECqPED -ayUf36Tw5QkP2q45GcYSWUNqamrVc889txJi7R/UA7Bu3TqypyfadUpOTj71xz/+8XMEC76ZDKwM -+lFxAVjEjfYHgmMALJRiAh6P56wjgHUVXlBjhpKTk301NTUxO7nQlVdeuaJt27YV4Af/2MarAUC3 -bt0OR66E1tGvX7/FnTt3Pgm1QT2qboDo+cS99gcQMPsVK6YisQ06LiOAxugCyPz/nj17ll188cUl -ESqOJbjd7tpp06YtQ/CIOPOouKCRcvfff/+u9u3bF0Sn1DRcLlfN9OnT/wt14ZdF/a1qfiDOtD/Q -QAA8F4DdFwYIvV4vGQNojBaA7OObffr0KXn44Yd/jFBxLOH6669fcOGFF5YhWMilhHDHHXfMj0qh -JRg8ePDc/v37l4Jv/quO/Vfp8rOt/UeMGOGPJe0PNHTnqYJ7rdQFiFlD2B6qfcByycc3Bg0aVDxq -1KifOnTocDxCxVLCRRdd9O2nn376KYAa0GPjuWPlp0yZsj4nJ+dgNMouQrdu3b5ctmzZvyAe02+s -eYJvhQQgOAbEofYHAl0A25AHARuXCfBRWS2OUx/f1DT/9ddfXwyg9i9/+cuyTp06HY1c6cTo0KHD -tq+//vptWEuMCSAFl8tVM2fOnJdzc3P3Rr4GwWjTps2mVatWvQSx0NsZAET5/SyUtb+tCjoMqwTA -Mp4fgF/qAjQyC+DPknHoXbt2LcnNza0EUHPllVce2bFjx78feOCBlcnJyVGZgcTlctWce+65az// -/PMXMjMzq0Fnx0lJ4a677tqzb9++J2+88ca/ud3uqMyg6nK5avLz879bvHjxtKZNm55mywi6/19k -/ts1++NS+wPyXgARAioqDQI2IgugsNqH5ZKZhK677roC1JnYPgC+pKQk7+uvv7561KhR2yZMmHDJ -vn37mh89ejTLRJwBz9PvD2pH1Hk/73hSUlJ1ly5dtlxxxRXrH3vssc2tWrVi+/t5I/9EDTgoJpSW -lub573//+9FHH320evLkycOOHDnS9uTJk3k+n49VBnZfflCdk5KSqjt16rRh8ODBP4wfP35Du3bt -qqA2yk824k+l/19aRoXjMQfN7/e3Q+BcAOaFnQsgYA4AYzstLW1OdXW18IuwxT/PRIs4zvgzY+JP -pzGdmIjC7XZ7CwoK3unYsaMxA60o0UQUdaYy0WTXy7ZV+rW5XYCwniTG7gPBwWQzRGUSPTdeQE8U -6OMl/YQ6DgCcbXC2Y9b8B+qEm2vWm/YhOF+/+Hy+s2IcgNcPvFdCW7yXXHJJQceOHcthvbHJBNbO -miIVFeE3ICMB3sxSuuB37D1F7Y9XF5YA2DVP8EXXygRfxeyXCn+swxBcXqFZluMxnx+AXxYEbCwu -wILjHhRJZv+58847N6DB/FclAJkw2z1HXSsSfnMFreSGqCzsPc1g2xZbZsoSUCEE9npVweeVU1nI -Y1n7A4ExAB6LiUiAJQAyzNcYgoAnvX48LplVNycn5/i99967C3QDNPbZhm1HgFXIQKb5ZRYAK7hW -XAH2evN9zJC1M55LI3quFPHazfoTWQDsM4tpYeeB1dxCLc9ZfAD8J0+epPw6uDX7UaBYwpg91SiU -zBd47bXXrtd1vRZiE9S8bYUAwrmtqv3NUBV+SuvzzH/2P8m2hmDhpSwCVY3PPhvRs+KVl0Ssa3+g -IQZgWfCN7ePHj9OZgI3A/P9rSS3+VkJ3/em67nv00Ud/QJ35TxGAHQtARahVG7IV7W+AGhkaCQKw -SgKyhWdVqGh8ijBjXth54FkAxlr2MnwAfOXl5Y3a/C+o9mHMHtr0B4BBgwb98LOf/ewoQos6qwi+ -qMGqHuORPUz7LEQugHlbRfCtuADmbRExWiEEFbJln4W5bLJnFHQsHrQ/EGwBKAu+sUgJII4NgMJq -H365owoVkg8JpqamVr344ouLEKj9fcw25YOKtJFVrW5X64saOE9rywiAPc7+VgQV5WOFCFSEXvV5 -sc+Ftx+XMPcC8BqF6GHVP9gTJ06QBBCPmYA+1H0m/KmfTksnnwSARx555F8XXXRRKej+aCsugB2N -bmUBZ5uCFSuAd968piCyAHj1p0hARKqy58t7TkDwcxIRJoD40f6AeByAD3XRXKHmN5aKiopGZQHs -qPLh14VVWCVJ9zXQr1+/Vc8995x5Akq7FoBVzaRq3lsVfmOffXOqJMA7x96DB5ECUiUBlbUdrW9J -+OMNZ70LsLvahzWVXqyt8GJNhQ+rKzw47VP7bfPmzYs//vjjf6JuHLpM+1PR6FAaqhUCAOc8mOMs -VN0A3rbo9zyoEoAqGYTyPMHZVkI8aX8g2AWQCjyzeLt37378zLXcl3ugxo/hO07B7+f8gd/0VgTn -/fAz+7xrBPfk3AOm6w/X+nFM9nkZAVwul+fFF198q2XLlpXgZ5xRLoBqQMr8HiA4pyL84Gyb1+y2 -GSICMNYigbfqAojKpkoAKvtWnh9VRuqauILxbUAdgd8HFH0nkM0RcANIat68+R/LysryI176KEHX -dc+jjz765qxZs3imfyS0P2wcA7GGYF/FDWDXVjU/7/9FZVclArvPUVQG85otaz3iTfsDchfAiAUE -aX40jPrynnvuuRu+//77/EgXPhpwu921v//971+ZMmXKBsizzkSDUvzgk0AojZYSejuanwUl2Cpa -P1QLwLwdroV3f2rNljXuwRKAD8FRXZ9pzSWCSy+9dP33338/LOKljzBatGixf/r06W+PHj16N9SF -X6b9Vc1WWNiH5Bi1zULVCpCdE91PJFyietglBPZ6cLaptai8AOJT+wN1LkBzNLgAIleAcgfcRUVF -6V27dn2toqKC/GZcvELXdc+QIUM+mzt37ieZmZnsSD9ZBhq1qGh8Fa1lpUFT2xQoQZcdE92H9/+8 -sqmSoOwc717UmtquR7wKPxDY1cdqITL4Z1o8rVu3PjV//vzHc3JyCiNeA4fRqlWrwnfeeefpxYsX -z1WcTUc0rRY1Yw07jx01s63KLDeUFaKSGafy/kX3okiRPUaRpxWXiiVVkXUlIw7AovDHOzS/35+D -OlY2LADKGnAjePKQ+uO7du3KuPzyyyccOnTo4khXJJxwu901PXr0+OHuu+9e+sgjj+yEeoOlBIwl -VpnJb0Xrq6ypbVWItDul9a10BMvKKqp3uC0jJbMfiG/tD9QRQDM0BPRYElAlgvr18ePHU2644Ybb -d+3adVFZWdk5sslCog1N0/w5OTlFHTp02NO9e/fCwYMHF44cOXLfGVNfpNEojaeiQa2a/uBsq6yp -bd4+BZlgWzX9ZeWQCaiMCOyseWVptMIP1BFAUzQQAI8EqLgAjxDql+Li4rQ///nPXQ4fPtzU5XJp -xqLrev3a7XbD2NZ1HWcW8zY0TTO2/ZqmaWfW0DTNz9n2A/C5XC6/pml+TdN8prUPgLHvzcnJqe7T -p8/xzMzMWtAmpqrQywjAz1mHS/hlx9ht6pgZKsJsRevLYgC8Y6EKtiME2VgIIBuBBCAiAlUy4C0i -YtGZ/+Yll4j6lnlgBYa3iLrhRL6lyM+1Ivzs/6kQADjb1Fp0TGXfClSEXZUAqHLIhFSl/lYE/qwT -fiAwF4AnKEBDFyBM+yLw7uFDw1gCQ9C9CCQbDTQBgLNm/5ctg6g8bNl4BGCFDETXsvfl/b+q4IdD -26sKGwuRxtaYfdExlXOi/7ciuOF8NmeF8ANiAhAJvEj4jd+5mHu4mDVrZWictV3tb5SDrYuxzwoc -JaQyrW7V17cb9ANzjD3OHmO3efuy46LrZETAu6eqtpeVy6oGD+XZnDXCD/AJwBBUHhmIYL6HQQK6 -aR0u4bebTALQBCAjAiuCz7MuKAJiy8qrB2/Nbqvsy45TsEIEsv/RFMtghQyoc2F5Lo1N+IEGAjBe -iFn4VQVfJPQiwReZ/aLJJMFZi8rCrkXWjYwERAQgE3iZ4IfL7Ke2qWPU8VBBEYGdMqjUyQ4BWtb6 -QOMUfiBwKLABVSIQNWAzAYiE3ormVx1PTmlM3qJCBDIBlwm9VeEPh9YXHVM5Fw4YCiXUe6geD/ex -IDRW4Qf43wUwtg3B1yEmATNY4VIx+UUEAFgTfrbslGDxhJEVVFVCoK6XCb6q8Ktu854DBauNmgri -hRt2CMwRImzMwg8EzwgENAivsQ0Ek4BIo5oFnj1GmfyU8KsGIdltkQVgHJORAI8AKC0fivDztqm6 -ifZVz9mB6v1U/ftQ/89u3ZXL1tiFH+ATAMAnAbMG0E3bxqIhsOGzcQCZ4FvR/ipdSjIrQCT8doWc -J+y8Y6Iy8dbUNnXMyvlQoTKwJ1SEWkdLZTobBN+AiACAYBIwhFlEBOaeAzaoaPxORAAQ7JvXqhAR -gHlbtoi0uMo2ex/R/4rKCGKbty87LoPsd6qDryIJ1f+0XLazSfgB8afBDLAkYAgwjwjMgq9BLPzm -favCb8UFMG/bIQHKMpAJPrXwyqNSB1F9RQhXQ7Z6n1ADgHb/1+5vAJx9gm/AbAGIfDdKgM2/M877 -TefN2xqChV+1y0+1UYmE31jbIQEZKVgVepHg29H6snPRQCTLE/J/na2Cb4DtBZAFcFgBNrQ/T+BZ -MrCq9VW1vwGR0IiIIBxkYEfbh6L5qeMiRKqBh0vzswh7+c92oTeDHQgEyEnArO0BvlbnaX9K8GVa -30oXILsfKhFQ56xoe7uCr9JYY6FBx0IZhEgIPR8qLgAQLMyAWPB5gu6k5ueVld2WkYB52y4hiO7B -+x+qrKJ92fEETEgIvBp4A4EAdStAVfgh2Tav2W3qmLk81LFwEgF1DW+bWvPKLqtLAiYkBD00sL0A -MsE3X8fuqwp7qJqf/W+qnOw2e0yFCOxuU2te2cMm+AmhSEAV5hgAEEgCVqwAlgTM91QVehWfnz1u -lQDM21atAqvHeGtemW0LfkLQEwgVol4AVRIAAoWdFXxjTQl8KKY/Ww7ZcbtEYKyt/kZ0TFReqUAn -hD6BcIKyAMywQgSiNaCu8cPRpUQJnAoRUOesanrKAhAdq0dC6BNwCprf7ze681SEU8WEt2Pmh6L5 -eZAJmSoZ8I6pXk9tU8fqkRD8BJwGLwhobAOBml/FCjCDtSaoe4WTAFRcAXY/VHKgtlX2A5AQ/AQi -BbMFEHCc2A/XNm9fdtwKnCYC2b1EZUgIfwIxA83v94u64XjHVIVZJujhNvllUBFEVWKwsy86Vo+E -4CcQDZgJAFDXyKHuU/8lO6cClYCl7Fi4hDwR2U8gZsESQP1x0fUKx0K9HwUr4wB4oK63QwrUPZXK -lhD+BKIJ0Xf7zME62XE2mOdkgw713lYJIJzHA5AQ/ARiAbIPd8qIgD3HGz/AOx5N2HEPQj0XgITw -JxArELkA5G8cPh8pqAhhKGQRhITgJxBr0IYPHw4AmDdvnh3BVP1NqEKv8nsn3YOQ/ich+AnEKuoJ -wIBNIqi/X4R+Ywd2hTAk4U0IfwKxjCACMCNEMqj/jzDcI1IIi7AmhD6BeAFJAGaEiQy4ZXDovjw4 -JpgJoU8gHqFMADw4SAoxj4TAJ9AYEBIB8NAYSSEh7Ak0VoSdABJIIIH4AS8TMIEEEjhLkCCABBI4 -i5EggAQSOIvx/wEH6mZY7Q+SDAAAAABJRU5ErkJg ---8GbcZNTauFWYMt7GeM9BxFMdlNBJ6aLJhGdXp-- diff --git a/jetty-util/src/test/resources/multipart/multipart-complex.expected.txt b/jetty-util/src/test/resources/multipart/multipart-complex.expected.txt deleted file mode 100644 index 1eed38785c1..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-complex.expected.txt +++ /dev/null @@ -1,9 +0,0 @@ -Content-Type|multipart/form-data; boundary="PMyKOsh8JrSZm-rUF8EJej42yqbh-UWw9FG-" -Parts-Count|6 -Part-ContainsContents|pi|3.14159265358979323846264338327950288419716939937510 -Part-ContainsContents|company|bob & frank's shoe repair -Part-ContainsContents|power|ꬵо𝗋ⲥ𝖾 -Part-ContainsContents|japanese|健治 -Part-ContainsContents|hello|ャユ戆タ -Part-Filename|upload_file|filename -Part-Sha1sum|upload_file|e75b73644afe9b234d70da9ff225229de68cdff8 diff --git a/jetty-util/src/test/resources/multipart/multipart-complex.raw b/jetty-util/src/test/resources/multipart/multipart-complex.raw deleted file mode 100644 index e74c27a67daacc6680c483bc89a9952531c1646d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22929 zcmb@ubx>4){4acVX^@l_w=b40pvbDX4 zkk8v!w!AueUXstA^O6!jadvXIc5>%^YUk$S>}Ka~=jDj_K@DJ&!`AtELuCL$~>AuJ>= zDJmc&At53tDK01`DJ&@|EG{Z2KuXN}e|2P*&W6g^<$o6Le}DCV9G|nLyR|#7o4c#Eh2#HmSg-7yEL?qVmhOXw+H+E324VmJ zNRT1ZYbfWKho^~iq1T$7CVDAep3B43^4u6=chkco^)#|2zX54FWnMx zs*-1(4|y6v{R%B9CN_cS5}YM5*V@-XSe`V;I`wDMad8oh0u%ER3WSx{F9P?+W#T+s zR+zf(LnbKvCr`4{$xnRgC+HqDv~2s1c2b4I^?mTwO!|UpA%#p`4Hby!p^>zKN8Ujy||_|kOC1dj*c9fwJE*%F(#h*Xlwyub9X>^E`p}UQ{ z5VP>DOIxY65TCmtU&rz1Jv`HULR118@lIF#C(P`dT)c8K9~Tfr{OOwrndp}{WJ>z29G!c;rKq1ypRa~>3wPZPk& zLnyoG3{JA+OiC7y6Hg|&8P`v7TCJXD zLSDjvyY1!K3J+NmORc+}US?ZzQ8X#aedF~FZ0w{UqYDgT($r-)OSn9OMSP6dw0%#g z-DlG!l-bMeyVrQeOH54s0k$a*$JbT$H~6Z>4&f$EsCA}mq*HWExeICdd=;&I_aPf~ zR_#SY!bd zP*9Rx54gJN=$x1GJu_%mz}20L*z{YP?P}Bw)XDN{hq?rHxBq3%!EQW+JhVqPw3k)h-3>H2k94GYY`(?VD@{bu6U6x~{8SrFO41O-&nA@Q zN|;EsPqb+{Q{K$@w*s)rG1ogc$Qq*=l$=x?$YjW%5ss#DIsNjW?g2G7jQa8SC*Rj< zZWUSeN_ROO!F=aEl~4o;rx(2XW5Hc#%ucsLrAsHP1in_FWP4@ozAK9F?C{%D^7GZ#aQSKO9_f(ML{^S|i z8Uv2h`WF_LFn}ld+A}nR%JnE&iY^MjsHhM?bbPW4VD3v%YMmhz(Z2^d+AH)8dE8kP z0{s4dOBdJl8SSHr9i80Ls`bgsiUm7ly1>yKJ@@$nCY?P9aDc_}0qW=0;}ewr#nVMr zz;Cf~zHM1+NP&QC@s7u9M_O~;{Wi>Jyh|hI65uW4%!EvnwL!C%NyXXb>0usStRcg#{X%(WT*P~I}O#sXo^W6Av_1>?LkTTrGR(8 zJ3U~0yUBox5EfE#8`X+gCkj^#(+20lX|nxVO~I&8Of&Yo&>nd3Jf~macCy*u8Nu4+ zxi!|`Y_qKh-_AFZ6GFY!OQs-i5nrR6+;#rZMRTi#A)Gaqs}2Y)8l) z0XdP=JLPSKge@wIsl=28BAT0ccQvg2l$Vb}GHUl3@K0Jg-zIdb6SWkvciwZ4rTCDk zoab2r#I|d)LZoq9x#fy+^&_GK2Dg!S9y`yGbE)4agdYn;iu$FWp>+BKbQesBr>mYR zQ$osRskIq+_Hz3|=C~iSG*pZM>H_*2q_agd&tgk`rZGrr?NC#9CO>l1rpc;;M>eKR zPd#Es<$o>R=2R0H-|QCzESL$Y+f%Q($P?C~VIfA))x8GUMfDNHQSN6TiM}+}S=k4}y9f zROxI=puN;D*fP(OWAM?kv4&7KW6Bnc<}a0@i=0shWB(hDMxjPYyGn^0s{c2(QYR9l2Sjn_XoIOCx~m z*8|B+dt;?WfB*gcN-|aJY&KB%tz>u2QFj98l!TZ#x$%4{qRDe_ZZ?j$!6&0A7(JRY zg{nNqAX@mPr7!iz%S_JXF#8=wQl8u0V@fNVE=usbvi^0M*JG`ffcMl~qiQ9m^`=(x z+`wd+oUXq97s0nnKjm+JWDt3=k#Aa4Q&VVB=pP>&AMakJlE`N^=et!J@jx}Xn$)A+ znWu4qb@lGu1p`Y@n%Fo%_%4-%=*h_aL)`r4*B@;V;ljC|9)hW zuuU0(Bc#I6=>EPGuoJ=GYoglmK+e3)&?A+bpU=V|>AF%<3%;2&ZnGOd zK+Z7NRKXh(3fvDy77%a=^K%YsJ~)QpYP@_IJ5*{^n@`64Xo7o%xJy9FWAhljJKK=Y zS|`6hL(EN!B4#D&@%a@_Gf>`gePP4R#bp@sqxbWlCciUh+4F_qvy0;mEyP;P!&8fr zP~80i@%a^FH7rLcxlMK7>m(YD+)p`=DA3KlJPq=zKSrzEIpfu2(1|WY^Y!5fup#@dwI4uct_U%{Ptg3 z1TfJYaG4v7PwI=9t@n_$eJE^1U}0ijG#o~G@0x$AogBD4-D%i;ch~8>YbaO64c=9y zPZg|%YYwNy75rUThbuJy$uae$PjuYaZEI~HrTmu7uUGUWbbO4Lz1-#Q&DffG$X!c4B$jSSl?{+ODJm}W&CJQk2@vTW zeB$WnIQ(|Ga~4{;;6|5E)OySGBmCFACJ~0{?&?-~3u1RY1Bplx)(KbjZkmfHy8Ymh ziK%Hi)MKaIo-=HQC!Kwv`Ra7KoSTQIaRO~<)Dcd@{f?TBF8|&is5w!f3fb4^(arYY z&XoD8=>i28o~hDiFkO3p^__!n$tRErQkgaQ%ir8RBzQ2w{=g$q_3c??6>!JWfvcg*+S?p+}hfD(6v$R za}k;a_B2}V`n)wfJUo?9dzAJwzu6oe?G+XrFs2dwuya@D>B>`0DSJ1Ad0!bdqG5g- zt>cStrHiT#{2U*j!zAf?KZ9%Hiucps5vC0M_Cr^4-3+TPln6M{_enek+kwkQAF!f| zz80dTd>&)8aDOo(C}~{1&{dJ0Sn}iZo}Q2J5O%#edQ}iogBEmf6Hd5>v!Ese3vMd z+fI{l7@dNoCXoZ;KYxCm9k?QjOGYNd@UGx)%=1Q}#d757rw6L_b=B3?qB_m<)h{~Z z$vCZ;9=DwbjIN-`n4}mLDyXQrGU$b0yUV$*C^CBt+KzLIi=P41K}eTw=z^W+qz5%+ zh3v-?mZ|Oh`sVA4t)qhW(*c)XrTaLoT#qkt;F_9o@9;@lc`$3$ntx%iQyH*Iiv!~g zd(D2lI^RW@?hH>!s`|_(k@FDXe6R87w+x{> z1hufv%|M#J>5F%Q-*`IZU_#C)5u;ACTh?f`!YT+UL~ro@l-|I^^*%nWgvUI1@x z`t4x4%ud1Oug7V=Cz~EXb)%#`q~P(-7mrH$??HB#j?go5SI1g5MHDzyONl@;Z+;CD zT(EHPVx7>NCvx3YTIhEUI^CGt6o16unOL{~&5B_+F@8g{G80-oTHJ6 zNg5wliAu2>WQk@z{WxZQP;xyLx*s|}k@pJVfpDi_SptqKU@{(1W*~+`=n=aG*E{Klfud zhV#vcl$I~kf|G}~2-4-AI`o3gKuarMZ5FD4#r{}N-|AD^y#=q{ijRwPT>=a3HRG%K z3~s+z7s$i{j`el%1y+-4qQU~FXX0QRo9K&~c)5D7oL=nBgpWtOVL{Iu~ns4qW?Fc z-i&9Y5Q)9csIeRFWMp+8gH}jjK|FDkVQo%NUnk+9CoeD0Q3S(T`U2>t9TN|q0WcYv zrlpIma=CX4XAbF4VtVmcewpRq3fK+hw8^rhnTwT`x`7+_b&sg^z(}E%cvhR#l0o5# zN5&%`*9`sgPt!YPz6ZbP=q7%6)$sr{*!d{5Gp)N0m5bwK6?;QT$;bXj5nDj!Pt4xT zk0VpuWN?V~F(^s=)*yDk)XM=yQsFROR#M)4Q6#QYmSI!pV({7R+4_2y%!G!LT*_Ui zIt!Hs&z(nv4^WxkYrXd7s((e$dFAiYk$7y*Hk=KaHu>r#lfCSfTnLaBC2O5{J>Wkl zIagD(iy~np74_OR9>VO!WPc5)a)aE>XC(nl-Tx}c$zz;+1c5nGUBXrwi}nx*hzhm~ z>Vc2WTQdMX@P&0ee$FP{=k>jyp1=A8)wMmJIL!35w4U@TR&V8O)!R%}+hMKAh9M-k zvjwSQ*oe~6|w200|u17N!vS{uy3 zx)r@x&)v9_ylm`dq_y}2Zy6$^T--zgthuzq#lu2}E`N2)I1;FM=Js0JgXrGneF*l$6qqoPLCE z&XaLK>L7LLh>H!`e6=*Td_BKLRppqG(A&afL&=)MA}`V(`P^m*$q>P21e{LpCL|=} z_(prC0p}V1hdqO^vGeT%n5Ikp-58k%RGt*;*0k_e*X@bQ6&wPx>MY_rgE9a&`!y1Q zK)m$zm1^bi;>Lx!LZF&~#YIJN*pqVPNpA1R1A~s8A30tWRGzw*`%3gOPrp0QH~SHg zG3rN|?~n`Zl-Aczoy_^|#Tw*PYUJ~o)R%yTW11{&GI!0JS}lly47z}K<_&dvf2Sl4 zwKb2u_L3D9w9HfKz$5dVlpsyQBEj;)93s&cN`pAHWbM3Mz%%*5*II2i?8^*7-cMY^ z9i>_^Z@OM<|4a?em-mW;s6RUR`Fh`yS$<~+y`HgWY-l(Ya&vU-`o9Ri+fz3Hcqnlh zqphSWD!)?!D?fm2W(Wvx(TA&OZTSo9dPdRd)ORHW=KBk6zce@iXO}DFYSJPrHI#|YGlc5ECPqz*HhgHQB*d~^6znrcfp^wGqyn{!s!Qr0nOz(OB z%X&`?OQ$lX#vz2^_TicjW7p*swu$y1{th_9o!`r_gS z$n1cdA^*)L0(|p^-TJ`xEiAwO_9a7cyd~L7ZD$QBi@Tv*3M-wVrBm zoc`W5RpYR(FzaWXQTeYUvr+Oufe#L6To~0eyQ0@g*Jir2W$wF8RLrJM8mT|ol!5Mrw0FDSrTE$m^qw9nakvCAIUn zdSx9OmA?*;C+4qDYo}YCBeswJ%3b{XIs@KyEKc{UEVbHM&uKROk>hN)*j_w=Fva4pY$Z^A|mv7;xn(2 zt}MtSF0=BkY7D-;j{SNK{${WQ=YpN_f|+zL`l`M)0OJ=$68QIJ2<0f8df^B%0GyNH~i9Z1CTX2Gf3y?Dyb*G>34t#P^D{@;L zJ5#oI(T`)k+%m&nbb7};bU*lrLwl|N8=bg`~4|E zi-YpKLdLcX-U|Yt6P1<(lMk0AfjYxDV5G$0+oo*5#hu%zFB$jvAz^d?t}V2n769>{ zXBLl)r*ZtS<+rLTwP+SO1o_W0Teu8ZE~a?Lwm@K|D`@jOm4<>uqCsOGb!!qY6XV;9 zt+hYYT0>rmrieTL=HlgLmm3y=2^-#qg_7Z6TW+9JCiU@{UUi<4jm_fn>%)G%OoP(F z%eAj@G!(xB;Z+X$JN#1o_n=P8nDgc6qe7_ri@$%zdSdUAS?2!4?v0mc#9sILsWtA( zN#ka!Ckf@|k8iQFtauZMvIG6`w_-ueeDdgIL@Sh{b^zt8240|2GS11#xp53mPIHh) zAO~H(PIkAlz*tdo#`qna-ypt-#^^tJl!C26ED$I`|0L*{`au1m6be`a=t5H>$_Ba6 z8d$9^cNO1XjWKvfl4v76Uh+A8-@NI*jOY3OqMu={ljCu&9cGhhd>oqzodq z)*xBnZpHR~dq@l0q1Px&_=&A$``2j6MrDp?QjnA^=IEQug$-3TmSEj5{h(7)z8{nf zJY;A8Wh!P8BYF?etEHh}{t1nt+2(asc*s zr71^Z-zr$xZCU`{<0?yw9lV94!|e|1!C*;eQ8L)bHE^7o%6P~rTUpMat|(hXQNDk9 z)jc@aa{Pj#&zbQ_u*(zokElF5kMhAC&r6U?m{r;S&Hg?@UZ1yF$JzCRwaS6J@mw>G z*>9(2e0L8l5u-^aRaXg#i4EA(+7^%O|J|pPudgl>v(&x}$N)lmuq8fJQET6Cqsm+E zfMEnJuOdmN;McsoXZ(D84~E}9`PJxi)V*>C@GdF+woxg}{?b)-cz;AoeMiKTl5t*O zi~$Jf{78@HP*1-<>Q}vm+bRc={6SV)-^s_Fc=3d=TWIWdrHd^Vb=BDTXyen1R>^9m zF_-tj8`d$ieJVrxM%y@wZ@H z8$kS-^YRAl${cpz%lN9c5DCgsy7f4Y2IBEaLy;^rg4EwsA6P6xKjrqGJK zE8br?sdor}POlpPjYn*B@PF8Hvldyuo;daue|I8@2m&L?3}!#WY_1!`{BlLk_Oj`0 z&Y{L;klB^$lYYT)Ir3^N*OtOpXUEx&2Q>mE9L6Bm92?~2%COjVIjn(Hh%jV5)8Vgr z^bQFA&}m+CKKd?Fian38n4_H2=+O9iur4wu3s|(%;u6=>Rqq?I2gTr|3SsB{`=b`L z4^$BNUXMTuxrnGWTj=-F79lT!TdYf%k6Ke11aL`8fSMC zQW#I9A{iwQNpOi9brutUK;d5+AOm?adtdrxV(k2!uvk#a>K2^g_fY;7IgrY<@2w|K z)6CjDcB!~!^;|Uklf({zuVVq~pUR2>S#nQ)fHG%GKH_qEo|!t8%-&7-bw8}8Wtg*t z%cJ-AZ$3Zpbd19$juRsxF?In04t=SG?8E4Mg$1 z7pK$CMw(}LV?TxbCdIn zdmFpn^571H&Srdix~ZVUScy(%Fp`?J;z^(q8!Wfu8KAL-Ju3Tz#2bBj2Iy$65+4uc7w6i9NkasP|fnr93=VJuvL$XWNsyFFqi@A;|5an-#UpPK6L3wGW<3z>gi zcS$l=@by^%t}h(-phq5TLJRn4SOq>Ai)^az{(}5aMnuSd4A8~N7^)$M$;TDirD`2aV^XS8WTJ1 zV<%-;*RePEFsJL{24h2ibC&&*^w=Cx8yy{W?=A1Rjp*J48H3m6NMTeEt?)s%Mk+_1jBAT-LOowX1OkVN9@Ej|5YmPdQztUb7wq zzd>-xh3g<9ECM{_=l8k-vGqXy?l`+nSH;?I(o1kKgNV~_9#@xV{CH;P2J-puaI|y* zit~~;MgW^I$eejVz9Ym93nLVBo_leD6|}hSI^g+<3irE>_++rg;gJ09!)=b;#}$8$ z{+XtTI_SPXJam;>tyQi1#@Rw_hE5Z(fbws=XTr&(!qwim{>F&AB5RCGT+{2}iGzYT zM0b6qqos|boK+;8SAMlmPBFiROzMheVNb&>mYK=dkh6e2{|55Ul$*)9_3}p(iU5YH zs*$H-M$WNHuS!3O&ctq|qRTb^tG`TA?*CZ#d#+x%{O>G4=zRD>aUBHz%?VWFnP~2; zeCln_qriI@pc;L&UMm%FQN2IC!&mwn&xI;MR!%G}4%g#`;(|NEd2!6e)X@7RFEZXt z=rJ0UE2?Gu&nrY$$Cdb1bJfV@Fcn!>2DjznEm~d+0l2h~+D(gVprA63@NqnLumG~o_1YEEdKO3Nn#4yc!$kI2iYN)qvilGDwv=U0WysPG)JA-lBgH?xlsm zspJ(oSX16Tnz_RA(~Rn?qSd~ebi36`N zX(^yUg|}*rhd#zNCV_tjsEOtq1PK5KOe;f=$jaias?UB`-e13r#ivPmaIuKmYYYAh zl$ZJfhYKoYW z7Q#p}^^m)GxI6Zq!OkGbbzwiW{~na^yW2bsM}4jqTych`Cok#j$0ZvHfQL za!kwgaJBQ&rdv<3yHx!h_nW|P!_87!NsmoU=L!WaI~h^NmpCY~fD3oc%Pkk#RXyGO z?d@&L;XGAKErbFsDqJCxio~398ya#Bp_mgiHExyQAjS~!qV}3EqizAuaxT?R)0&@M z(;vDdV_Cq%JLfeYP!(@xX=K#o>#^3Gz}>^T)RDrmXiT657E+Nn69O-L%bCpP?Xk#! z#mA)3!x`wy7p>uIbZS7A$JUsq_9EL7R^jS_nxTlC|gLbYqPL@PT~s-zz_NON;X_%596tah;=Ul=ud3rfPbi{6Oyc?zuR z<*I=i`hYm7FY8p$V!qwJh5MEf?)?g2W6KQ5NZwPwgY!k&%gK)m@{lTE@4Y={f?E}^ zZ_HrbOD?)6{-RBIQtz#%mR8ek4z-!c*3LIDMNXNce&MvQ>4)5fTAG@g1N}+DEkXVh z<=t4l(Q7a_5F7~!v4c`rW<0;em24^@T-G@jLTDqN z`S6d87ZEW%|GQ~q$FoS7W}Df>p$6s{#;2`_w{A0 z0u~b3D!i@)0`@b7YuP;pn)wXz>x@KTC5|0XczkXp0~|a89%>T7x44`1xv;%^ZBDcG zI+TecwOL^CJG(h~AL`8#wV67YZrX)bhHStXDWgOM^{Y1Wt`HWsok4{HK_J~FCHmXC zew$u8V0Dc_^L|YO+5Ukavoo7_hIx%_L#_bH=9v^m^J!w8U}%p%)<}MFC$pl%kmg z%;9gb*H`Lsbffacg@u3T{f|_IR%> z3; zqLGcP_sp+2FdBl`9kT0}L)WMYJPk_kO{s>d3>(NlK*SEJaSIn%{(&{)ggpFttF?o8 zqms_pMScT|8N|jve!DQ($KUdT>~g@>&O0-~ZOSZH4Rj%A+^|=`94<5-U^Gb2(RkCqV-n~)wry~MM6uRHa3)RnYBvdp?KCG# z60kCcQUP0o)voH^ExO0_vSzy{%j$8*6BvyDXuKI<&)Gu$U&YcgH8ri=;BL{)$5ajP zk+;cuUrJF_;=+`>m5$7k0cuKY#%VOa{nF$5-8U3NN)lpuxNrjC#yAvK_Gd&N z!dk=kkDw^|H7v-|ra;-tLh_q2gRj(=Sv)`i1V^##faGyxqau6_>!marYcm{w3i;v| zGZqh$ebF1?O?H@7^Rnw{Z+VWIot<66H=Dt0TK`gK>wo3;bTIOqQ-a5CkcWD$jm`>} z1WDMwM1GD2?8URpy?|1y<9W%#`mfD-!!Cy;aF)ceSNVp$QqU^NIvl9JddDw;q;po#!Sb=|Uk!lBOB}ofQ6gv>$(|(W1_y*?hIZS`wvBMSrmno)gY|NvI zZmI(dp5%XX9Ed|uwhP+fk}IDAp50$fd{24r*?FKjR3P&ejYdvp_G<3W3iGz0&mf$% zf@<7ZTL>nhDk8356Hp8F5u=KOTu@UsLnW>EOd^8i&ew%qB1 zcr&Fmcat+v?N}uVdww-3cw!xl)bB0{es|c*r-7?NyymF#pvC8gFy5awyOY%;4obY1 zojQ|Fg)H42@09sv<mb7$0c>?D*J$R;5$WdPX;Xj<&@7$?qa+;Nj1Mr_cJZrYDde`~L&wj967SiF9zy2wnD=9LBtu|GA6Us-8zD%ijXIzY8obQAeN_0*65~AhNWNNKjJhKY*F6)~)gKK|XHo zPxk?Zvb`q9s&`($*}tjXrFkc=-u{g#WRZ?)kfkWlDukyqnq_eK+PJ`f)$0xJe-%mE zv&5&J+yL3~@UVRIOzS0reTQ5>8WN_RX(DV!%^3dxP_R54xSR4rFv}#o+DKsT;OG|J zoV57B=RIWISoGQbjY`mV=ehjFk9etUO!Y_B6oIzZynN1f19m{?a@%LWjlfG@c5~2a zg@usT-#{;82bS576=(Toc|mf8u#^MaulMro+c6VNGsyRWlVkI8d}dyVXp#)yUT4#Njl0DY+%_ARdhDUT z6>D;^U3}aiyfm5oC82_gEBU7tApH5VkM*%l$XTou>+vp86&lm=tyCF`{{2d?hWyi6 z#QV4h?Cj`yFlM2gsPZF<0eF!nCF%jf$#xcYyH*mkoj}7$GJa}e(Q>=M$5iPJuo}P5 z{bZTixK-8={y_yA-+44Br*4m}k2mux3n$jzj8921VtiMQ(Y$vBlfYklR5KX*m-?Z_ z8d0^+y#I_E5L0vOBW~uSqJ_#sbm^R`@#ptxzds+do4NL|&%ONm?11kTLC=WgYHxy* z@;Ss@+f-=RdDU2a^6qSE1tv{Ycnx zAe=3tE&P;R=%$Mu$fEPMms7xug^+Mab%f207BtT}3pL90DV|6bF!KajuH@ z-k?}%QMa}JgvTRTztw*?N^$)a<%y3?DK*HYNHkE7UJj>P`V|`)% z!|GM6nB&wrEss9MLV;G0%l3re6$|#9fF4g;ZZtL19m`%k`TA;5N~@;xvjxlZ6`Tf7-KG)4)R(WH2@ zzi<{Xd8rQt%q}A+T-5Te0vGPU?_-cJu`Of?xS51@SkeU3ndWare~IKG(ne)xDvOn+ z`gL$ayjK-->lO-bNFVP=f_2krbmG!Z`VGYvuS>l@w%O4vY)D86xMODyJf-D8BNU{+_vX zUis8~PS=B^pb~o$vVYLU@@Wl;2#*pY;{a%MFLT^hM4z1ln5_aS$adMOMcGP3-HkB9 zEa9?1geyLh`Q7!w>KWrEf)@nLAg%|qTHmAZ2rdEVT7CxfXXR7}1U5$XD;8(rnXlW!@EVB1FKl^%tk)-&P;GYwGPF97mu|~1A@EXa4YId9!o5Du7o+Bq2 z(d+qJ|LF5OVy+P8PIjdN6+Xs-RNgsb(O&Eul{XosNmcP#cj_f`9n@p*joid;ixyCd zAg^{;yDT0leDa>m4|$X_f5!}+aB^iNcon$}7oe|*F~IrUN`^~?#x86d{XG;Sf%9{6 zDoMI5pjJrWzb~;uN61$V)R>_*pY_zAyWp`<{Zdy%i~1FBCR{g#1?6D}QwxhMk=5G5 z;M;-)BOB>{yB7JER0I1CbFV{F^UjPumBjpZx+;9oQRPg((4u z-x>PTv52``GL-XFF_gb=!%8e}wUQ^)y^%8>Jx-&E04ez{+YKV@Yd%aVk<0+Kf*Y4` z5d<^6pl~33W_{hlL)-d9zeX-ojI*G~0XB5e*p2*iu-cb+qbpLOtjxMUbn-l14EYH7 zipR<=)>02y-b}={)KP-jQRoaoEofQ1275V&76L0S-t%_>6g|LfikR5yxIOSk`KMU| z1=L*U5(nc1|BH~IGlgo5Tw<-Sk&lo7bqsRJ_!KXbL2f_$zKoc-cVl8?9HjD5q6bRYheep;tYQ3iWXt5y*spE%c3mMYlNzUd=N0+a;S;#tVRphv$CF z87#+cpaAj3h8Sp(zXu_7` z&4}N@sus{#HWGREP4(YEHTZj@v|0J>spgJ#m=Oj0L9RHE(z0xdv_B8|nkoLhuiIF0X?$vUkhCn$0-6W@BB!H!$p+#GgG zz#}a3O+Ic?` z#ed8-Ca<{g3n&OUdRrVQy9i|JD*}d`Nd@=PZCHy=o?I&!Wh46fWX??wFTw2Q4j3^> zlU&sc1Ff0+H@*gIX){Smol9h7IaT4~Ts0j0Tl%wLjL#(pqq!zWao%q=C0Ftk_R5@+ zQa^mV*tiyq50-#4iv~)Ze#(F$i>6GTS#74eF9J2zpDgQ)`LJ5*GCDWA0v|L~$6kWP ztL`*09|OW}Yx?t8M7}1%fNjB%07iYplDUqnJ$fvp3A@6o%c4U@aMLv1pXUeQqa5@7 zCFE}fM;?QF`CWe#8Z;EMpEni`Mf?JrI_r~nj1r*d!mZP*X<)G7yVrEqos;3F=`pjk zV5^cKW#WJEYYWVq8bf`5W<1<~9(nOC`^tw;UcYU4M4)saGYDCv3#XtgF>R8<@5ByA zX6gB^yk>QUarf?9qRv`!>W*efVJzDCY` z9x9MQ7rC!>h_yBY!W99HCG7J};T5$uC-Tj z65%&sAZsn&jCpf6kW{Cf>JLc(4k z#`@QHBA_Tpgb3te$1l=nA-Agr-G2o@V}4@k48-~AMq^|M0P$75i2{(%w5-!mQ^#<& zoGHL=AUxQJyS6WlHZE-f0+Q|mOA;Sk?2s^TMwE}EtdsbXdMA)W1Q!&5D1z=YD#))x z2`JKdfo@t)_X~$H7qsJJb3mO!`acdiGc(fxdeFxY3W!>i&oYRKD$FzTEy0N$nE}kE zzg@;>l)s?_Y0ypdYorAj`9c6B_+rjqW*>T=_-!fjMkx(hg5bX`NSLz)RTpayRDk)@ zysG&5=`^rA77T+qMJ^RIsa}g**fM2kH&kQvyvnx4#Q;cm#GL$Wd1{}RthO%j%uvc@n+KZ;Y99FUqRpP zLpSB+lJH}>R)f5ul$Ia%jGx&WREp>r=V%#ee{tjnQCu6#w` zE*k!)i$Bf5grDyG!~qQdSYJj3+CaeQYhUubK8V3-uE1j6Q77>GHp&Vob%J%Qsz>lQ zXp-aZbd0fNh&dV}jqy0wJK?#2@1SpU;#8HW*~2a$pjKW6MJ;={9xJ2b{-T}LZt*bTe26-Bs39_WNJ39 z*_j#Pr{edPKBFe_G)MtMTHm88u-6rwVZrz{ zSa`6=yoeeQfwq95t_F`ST`4ej+M#i$01Ed50cgGESzj2ux4cAcXR2me+;e*(Ehgo< z@e8VCi#*7ZCueZjZil?v1Sp=GS8%+M%fO(sp%z|v2zLI9FrZ?8HNkn+YG-m~%K16J zOBM`EOlQ&d4}l@BmQ@;BTCv<+FSEY;B5wc5HlRZzev)7|$|o!B1b^{AwUTCszlzY9 zf}#z4qTmP=yt0!4?Zp#Iw|nY9w)uTP$NS2=RKJL`4{VmEFNdP(82~KU+#0}a2B9OG|87}#`8^fj9&n9b&p{*K-cJ15%nJDHEwW#A zc&p#^kY~qOM=%ryS_H_HvaM%01kk%B29cLHapP|m9r#sVHdan?Un^-6q^=GVTSW3P znxJBSS{!xpZHw$FW04?A<13aAxByWy#mP1HDu2UfR($R@DrYzHE*Lh#>*=op(-3ke zV1e0t_T;P0;`1jB`=FmzD(xXh`uj$i=M)w`ItQH?y$;jbj095v&a=-|86OtNL})cf zOL|esjscEA>%BG$wD;*zR$6KvD#MlPLkf3_3r=vhsGEV~v#&K08c)U#qNH~x(vy>w z*{??Ay7yYJvToqRCHH@j54`=F@(J{QJ?alS@3!=JcNYYT?x+(rCYWau%CECoU*ntx zp>%_gCw*Xet160FM)@}p-G}D0JgO+49|idQbUg&IKktE3j2}sH_tp(^6$WEEER>H5 zexd%Jl|%l3#dhck2$eEV&v3r*(w~Ak9AA6z(V=-1^Xc8+L~;{0c~p19B%bo2n05y7 zvC!^?Z-cV;M4zr}Gl9enfUevqm4m{@`u_dFJ8=SN-rAX}CZD6VwLQ!MAsh#lChe8S zYub1Y620JW#{af5{mu-M8rAfS-~JK@qk*FN7{k$PT@2FY)F-Uyl;9jU(=F;C%E%Q5 zEMN*LSjzCm+80BMLolX?LwDY4sl{pb?&T3Y_5IiwA%IlMDEpt-z~SW<0qI#_#*`iKz<9YR7sQ z9@MC}4a@zF%&W{&DT+GM^w@Z=Q4XdunLw}h)hEQnzZQHrHy@uG8Z6b_Wi4Pfz3z8g z{Je8-(~#83&a{_KxoMLcoDY*_i$u}7Pa=MTENP7NAr*p^mB;8i&mQ>n&vuhP`q1>( zuU|j7@ZS1DDTLE)Q-VODp>i8{)_P3;&rIp!@a~4UyR)cITG`fheg?u9XA@VR7BdV! z6*U5;F~eVMM4X1OBD4ZQoLXt zz=nqtpS4_{l#>)(uIB%%8wCf+o9{m)W#ZC?xApE8y<%^p697;f-27bt*E@mj>Pgs= zeWL@kLYUGHdDvBe0Y5MZ8c( zb1XDIt4K-W1CPKdb;x}Ezz@6sUd~SKavFgDf?li*&VyV%rR$XWi{FXfu z_=7^pQW*Q zvfLp=KF449i@8U_m$n8WN2ZjQ>e(=hi0-;ajhBdDtvdGPfjns|dPB;|cCC|iV8%AX z*hXhZX6H%m3C#-izb4<4sTBTd z`@|2o^-_>_A#pWSc$kN$8Vfp!v=t$+ZkXW|OGP@V?byZ1<$E$F<+~u(YVr(eDKzT% z_h`NUDUDT~$V^g7h_qX2;&M}*;YU7-vtsaRiM-Q4Sx;6XGn^8Gh;~vV;;{!Bq?`|d z{eNGh5%25Y@ozN`<*8@Pg;F7aJHx%8?4KYdv)_tC@)y?lD2o<-`DVoI!9Q5kw=hnX zRz@6@oe?bo;r`_f2=?OQ=jV{Sy5GL+7`I&SY2TI^O+Puxb9yUe2g ze6n;06En6W1uy+5XHL4FVIgq8o4{1oO`Onvw*Dj?^u7J>LPhJDsP^5yThAf{(s16& z7J?6*BjC_;=aTcpJ{B4r7KnYcrivZgE*V;R|(>{{&MPS(nnB@GSA zKIS?7|Ht#{d5-6}U;Lj}*PA)!IN99|0CBeh z|I8v~sD$KDu zBm@sj?jXQ2>IhjZ*|*oFP@m7vRatx&h*h^+x!TD*=;i6zr5f(idv(9q@HXw9WVyro znwirm?GQ=w7riW&=TsT+aD6hy%TnUj<3psD>-yjB=rf6RjcUk_yRE7J@^XYE zAIr19jrYbqFjFu5f@}Hy^kt0^;EnxdX)n78NEzJg?*&{uJUpLJ!?*Exs0CO)uMN`x zObzhb`3_J(+eEMat;n`pp|Q{X_ST6rMc|n8Col^07i_qe5dqYTa7q}0lhzPk;@}3< zc_y}rvOjs=bJ**9dU}2W*m)g?+X`kFQ4S=h%0kJB!1EU`YX9y82D1PpOH1a_(xbbU zw_tW}6E+#6+##9AZg9cG#ZpmxAlO;E-%ok;C`?&d`HV)xA@AFe4^|4UX-4|k`x2Ng zI4C@3R7MyX0%h(yu)Jt9)tuET_QfylylviOM9c4SohlHiU{#kB#lK&IckR=kX@#a8 zmgeH@(htS!zpPGx!6mCtjaAzq)#oPrZ%swe%YXxb+n{h*$x+U>AIyhzmcW^GLmJsL zTgPl3HVSu8@{nfxeZ7iIGm1YslL)jZrQ3@|QK95vhFE+3F~Q=n zHvjHU)g!FD)|#Hfq#S@>`DyCCyVPOG?euE}ED5`R;CTn#=NjDS3r#aCwIwANU6p#| z^gw^KID#^zRY>q7t~59bM??Zi=55|4Bisp^Ok#xbr87~%TYqSUnHpB2{~mR5Ihwn9 zI%21{^5RoSK2yo=J!yy%(zpaP#zlfPk%YEl1jKd@SfMz?RrF zBP#|cc_4!wn#|*xRx-2t(Gp~v!ZQrsWf`udz%o6Ma%%~w0JG%=YeYh0bE0+tj>T+`b7)`l;u zq`ur`{|3+Xjg3~o)~r>7Px9HdUes&4%hiKP<-NH}dx&*sh#f91%?ei$VaY9@h?!5x zB!K^U4Ij=N(}r3AvHufTOIt#~6gDYgn&HX7ws-ESW9|M~YO z5MhJ0a}u#f?zn_oJbjdsQmhfUTzv)LLOSt)SJelWsp4Ff9&?ph^OtlNhjYZaGmQN| zx9aq#9iau{Qx+lDW01RstgO$)z`z=6T=_el0fRWT58I0Fv*v|oo@T^$tlS9&hU~B3 z$10wmL6D_}42}mDC=6X4?XAV`)-*Wb%b$t8Uq!UHUsW{l;LuWa)-^xAG$&3Ys2_u} zef(Fp$69C&^H>`dueaT)x)BVIhp%48gW9 zrdru|x!dm{BF{jAaeo=(#UX{h(UVbl$>wlPxlF7o_`0_NCEdt!8=y`H`bL~1Zv_45a?&A&ug;?2WVDkw#&fz8>BGl19E~fQcaD|`$vC$W?sncD1-*x7t z3>=#>S*O~Y+6Q9twPxmsBJ+RTcO9Rz&=&vE82;HYU z=InR@7F|OUmah_61Ms{&yiD-&^YBXIbu8(|y$AB{&SSyT_RxEWO@({Vz4`h1go*vr zq|GaRf)l?O@c_G`QLA!j6e+zp^%7JIsl8ZmE?LWTPX_G0gD)FW$@S2J5BnJhVI)_j zM-H*UyYl+++cJXHI%sd06iZ8mF_X|kR(yviCcNP}Ggk^5Q$az2O*5F+bTEZNugM;x!3xmPa=ul3=;2FW$=PDEJ~oPP&b3=r!u>GE4}Dlc*A$|s#MK%XTc z(TSOO?cp$q{i2+U7bJ6#cyN^T&4t_Pw&fp72RBZEx*);V19tsM6xS*I-LFjrLX}X^ z??Pi;gW}3X-~`d725_)T;J1ek@ZeyLEpW&&Z$UK;*q_gNz$m2knNcFvPTXWmc@WIz z*a5Ar>|pr$#uIpK{|nErm$|~-bHW0O#o9DFzeY1A!!L=$QfmarIFs!;*6YnI<&6_D z%Bjw!WU8APk*(yErrL_to(~9!iUStwxrlsU{@12^Rzph`yv1B_Xi+m`PR9BR^tEF+l|pV%0j{{D_MCt}gFbT}N${b$-$fJ#59{jRTg}M>eu# zy|iY{_7MKuZLti36v4nWzVz%f_l|?DJ6#k#i!&wt$Mor8*=&?_op29#WchCgM z4cf{8eeDeJ_h%M$M#KyiV@o=KXJYX?aIFqtv(1c@$S0KDSv3*`l&i=+GOCZc@>6&U z*AEQ0@{Nh zNq(?Q&l=l`WrH481_<2t3@9$0ce_LrDTI*dm&kZ=o6K$;@DY|4`CwzKHD3NE-$wTK zNEhF&mlYMS!o=cM*oN746_t>`>^LmMqjrC<&2?J&*3aCZyt^_HXlZXh{%2*kUOubY z$9>@EHUw1m*hjFf>}Zc>?ay{t_0m``FN z#iJ;t!5%lOK}p80Yo&yS5|N~OC=tD!K07;GtwY}#Z~`3v=izz(oA2{~gwQ5d?z|Zr z2^6?~VnapAOtF@hRdDnA$e>dH!1yMD+TbYHT5vPm?Bl(H8a8~z&;IW2qScRu18d+I z*~P!EV~W|D;FJoH{JRL&FTtF3 zP|6uDB+rePl+xAb7Bbxvp{~y8zp;bs4>qI3_*j)-_^NC4blGTqIKT4T$7T#@h)~4H=>J8OmNBH?nJ- zR&bA_$#E3}%>3dn6v)1xM(g-~Ap+vHJ_x$k1@BeP<^Q;9(AHR3T$`TSTYQ9Vemq;b zgN@46hPD>uiFIv>ISYS%Q$TK}?ujXU5Gf=IKNU4lB_{=U>+LCF#P$1@P{zl~*Z5&I?5&Yeli?-pyfkL&3uGaN~XM;ai7ID;~$ zV|potwMFj3YZhnOBcCdehP#i!97c9^=Z=R9`AL<-up($>S4CJX;p>A1TLJTnH%-6h z>me0j=}gVo8Mc@aZUL)5xsRP>79S2J39@Zf2r1djFm6vV$k(#Aj|xk`6zyg%o!K!& zLUx?twUo!MYlLJjYph;wSvpfoF}1{Z;~9dXBq57=mdJMp)yFR4-Pgf}96%wJP_HUj zk&p1k&$AewX`Rd5e@rboB0TN`L?-@6$xtFBC5r(BV{OsvzcxWAT;wv%nzm;_AMpK> z+B-5v#7uKSZIZC6BZFp>@AHMrXR2;NnbVht4y2vVE1Uwb#T{a{B&EqcUtw(o1f})$ z>{#R}luKF@9E>h_sPiGG@Ualyl|!CjZ-88QhEO5h*uQ81p(#&Bi_z?0F|CcQuJ2I^ z#SGCO^q}0H)ScFli>BNyj(#P=^od^WSX*VX4O=U0KUyy4ijq%6^+mlp3$i7`N;+`w z802x2!mu8NBqr?|YR~gajFw@BC|mv7kQ@tO{G^Yr;-KuXC|sL2EcTx2d3=AX;)gx6 z#r{d&D56VEuX&B-UxX<;@DDs70WBnXdU9yDGGItote0~=;wd=_hhJexV(_zrsZ{Hj zPunY$7yriA09kD?HdcuLs;kjtO#V*MoQOejWXy$)Dpcssz@0qRXaN+m%cQMz1=eD- zcr)TW)x%-xJhxCIMw;DXvGhi0W7Mm^?cDRucIxpEj8R$`X*mcj(}%aC21l*FSXfL= z{gRf951y10j$Liv!xWe1hmEfxO^s1ayg`UaDDadnc3XH{<<&SC%?+Bv6@DDBKvvun zhm9V&k_&JNF{GAKc{8NYuIkdcTEZMk%F3bPinA#yp{7I>#n;NqdHjvUHdCIlF4w|I z2yG0vDTUIIeOuOCAzV2*TE3}J-=qy0UeX!l<(%om60SGMiQ>w4hCmn- zJ*fhn%g4rVHG=rq<3yx{?I#NWZ8`s1J;ueC6D-wKqdA4VXac7IkVsy)jL9+`vT~|;3TF@X&&msB4=|StIp+Q^gc5C$Z6CKZ$xC4 z%R6TI=o$%9DDe?w?FhT0W9^??i`_&dfgg!5R576avd2IoAMFff;z2<_7Y1oDmxw)>;_o3@~YG7Hi?93Ni=H)6J#;kmA7g|7uP6+r{Z5y z?CJ@c?BnJ_*V;LBX}5-cGk5AWV;D}&K|#4?b^6T1TB$v0=mTUv)6m_$zIOHTTPhig zSEG;p{%XS{l->ESCb_{X+3xnl;1lD}2~@=r*B$7kzLXr?3T;h`deOaT! z7?-cvt+1sW1qr2)iQz?qGCkL*|8!=nAMUP)|NjVP{oitRvDW8g)&9?9*8h&wT`sK| zY@t3)kDIN0Nqw5u@}F+A=M|8a>k;7bkD6_Dx>a+UWKE`P5ib-i z6gpw0;3ZRx7d^P(GDmZwNFNp?r-Ng`jz3nDM$jHqv{qe_5mxkJdPihQ)!-_LQSfO| zlA>HtiAF`r=d4)vU@&7!*K`ecEXQ&~+jFrSgno!^95|lsIT#1n_CwdSgTS#u-||8n zhS+y4Q`b;yg0+LS6_o4MA7K(9GM1990$rXes!*vUCHdF?w!FO_{Q2eR=^wajR89^bn6|R?*(i`u@SVxvGocLVAS2@`u##!uMW_3hX8%Q*ACddu09k(@|xvD(X4^n xRz3)8JTl_gFtHJtJBWWM8W;kx83{P30RuT8KmiIe&;ST9=l~0RD-}Yz_6kWmUd#Xh diff --git a/jetty-util/src/test/resources/multipart/multipart-encoding-mess.expected.txt b/jetty-util/src/test/resources/multipart/multipart-encoding-mess.expected.txt deleted file mode 100644 index 44148c5505f..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-encoding-mess.expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -Content-Type|multipart/form-data; boundary="CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl" -Parts-Count|168 -Part-ContainsContents|persian-UTF-8|برج بابل -Part-ContainsContents|persian-CESU-8|برج بابل diff --git a/jetty-util/src/test/resources/multipart/multipart-encoding-mess.raw b/jetty-util/src/test/resources/multipart/multipart-encoding-mess.raw deleted file mode 100644 index a1348ecccf8..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-encoding-mess.raw +++ /dev/null @@ -1,1009 +0,0 @@ ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-Big5" -Content-Type: text/plain; charset=Big5 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-Big5-HKSCS" -Content-Type: text/plain; charset=Big5-HKSCS -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-CESU-8" -Content-Type: text/plain; charset=CESU-8 -Content-Transfer-Encoding: 8bit - -برج بابل ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-EUC-JP" -Content-Type: text/plain; charset=EUC-JP -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-EUC-KR" -Content-Type: text/plain; charset=EUC-KR -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-GB18030" -Content-Type: text/plain; charset=GB18030 -Content-Transfer-Encoding: 8bit - -101914 10191018 ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-GB2312" -Content-Type: text/plain; charset=GB2312 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-GBK" -Content-Type: text/plain; charset=GBK -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM-Thai" -Content-Type: text/plain; charset=IBM-Thai -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM00858" -Content-Type: text/plain; charset=IBM00858 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01140" -Content-Type: text/plain; charset=IBM01140 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01141" -Content-Type: text/plain; charset=IBM01141 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01142" -Content-Type: text/plain; charset=IBM01142 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01143" -Content-Type: text/plain; charset=IBM01143 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01144" -Content-Type: text/plain; charset=IBM01144 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01145" -Content-Type: text/plain; charset=IBM01145 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01146" -Content-Type: text/plain; charset=IBM01146 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01147" -Content-Type: text/plain; charset=IBM01147 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01148" -Content-Type: text/plain; charset=IBM01148 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM01149" -Content-Type: text/plain; charset=IBM01149 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM037" -Content-Type: text/plain; charset=IBM037 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM1026" -Content-Type: text/plain; charset=IBM1026 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM1047" -Content-Type: text/plain; charset=IBM1047 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM273" -Content-Type: text/plain; charset=IBM273 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM277" -Content-Type: text/plain; charset=IBM277 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM278" -Content-Type: text/plain; charset=IBM278 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM280" -Content-Type: text/plain; charset=IBM280 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM284" -Content-Type: text/plain; charset=IBM284 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM285" -Content-Type: text/plain; charset=IBM285 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM290" -Content-Type: text/plain; charset=IBM290 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM297" -Content-Type: text/plain; charset=IBM297 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM420" -Content-Type: text/plain; charset=IBM420 -Content-Transfer-Encoding: 8bit - -Xug@XVX ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM424" -Content-Type: text/plain; charset=IBM424 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM437" -Content-Type: text/plain; charset=IBM437 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM500" -Content-Type: text/plain; charset=IBM500 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM775" -Content-Type: text/plain; charset=IBM775 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM850" -Content-Type: text/plain; charset=IBM850 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM852" -Content-Type: text/plain; charset=IBM852 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM855" -Content-Type: text/plain; charset=IBM855 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM857" -Content-Type: text/plain; charset=IBM857 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM860" -Content-Type: text/plain; charset=IBM860 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM861" -Content-Type: text/plain; charset=IBM861 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM862" -Content-Type: text/plain; charset=IBM862 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM863" -Content-Type: text/plain; charset=IBM863 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM864" -Content-Type: text/plain; charset=IBM864 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM865" -Content-Type: text/plain; charset=IBM865 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM866" -Content-Type: text/plain; charset=IBM866 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM868" -Content-Type: text/plain; charset=IBM868 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM869" -Content-Type: text/plain; charset=IBM869 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM870" -Content-Type: text/plain; charset=IBM870 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM871" -Content-Type: text/plain; charset=IBM871 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-IBM918" -Content-Type: text/plain; charset=IBM918 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-2022-JP" -Content-Type: text/plain; charset=ISO-2022-JP -Content-Transfer-Encoding: 8bit - -$B!)!)!)(B $B!)!)!)!)(B ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-2022-JP-2" -Content-Type: text/plain; charset=ISO-2022-JP-2 -Content-Transfer-Encoding: 8bit - -$B!)!)!)(B $B!)!)!)!)(B ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-2022-KR" -Content-Type: text/plain; charset=ISO-2022-KR -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-1" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-13" -Content-Type: text/plain; charset=ISO-8859-13 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-15" -Content-Type: text/plain; charset=ISO-8859-15 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-2" -Content-Type: text/plain; charset=ISO-8859-2 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-3" -Content-Type: text/plain; charset=ISO-8859-3 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-4" -Content-Type: text/plain; charset=ISO-8859-4 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-5" -Content-Type: text/plain; charset=ISO-8859-5 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-6" -Content-Type: text/plain; charset=ISO-8859-6 -Content-Transfer-Encoding: 8bit - - ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-7" -Content-Type: text/plain; charset=ISO-8859-7 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-8" -Content-Type: text/plain; charset=ISO-8859-8 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-ISO-8859-9" -Content-Type: text/plain; charset=ISO-8859-9 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-JIS_X0201" -Content-Type: text/plain; charset=JIS_X0201 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-JIS_X0212-1990" -Content-Type: text/plain; charset=JIS_X0212-1990 -Content-Transfer-Encoding: 8bit - -"D"D"D"D"D"D"D"D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-KOI8-R" -Content-Type: text/plain; charset=KOI8-R -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-KOI8-U" -Content-Type: text/plain; charset=KOI8-U -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-Shift_JIS" -Content-Type: text/plain; charset=Shift_JIS -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-TIS-620" -Content-Type: text/plain; charset=TIS-620 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-US-ASCII" -Content-Type: text/plain; charset=US-ASCII -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-UTF-16" -Content-Type: text/plain; charset=UTF-16 -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-UTF-16BE" -Content-Type: text/plain; charset=UTF-16BE -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-UTF-16LE" -Content-Type: text/plain; charset=UTF-16LE -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-UTF-32" -Content-Type: text/plain; charset=UTF-32 -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-UTF-32BE" -Content-Type: text/plain; charset=UTF-32BE -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-UTF-32LE" -Content-Type: text/plain; charset=UTF-32LE -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-UTF-8" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -برج بابل ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1250" -Content-Type: text/plain; charset=windows-1250 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1251" -Content-Type: text/plain; charset=windows-1251 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1252" -Content-Type: text/plain; charset=windows-1252 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1253" -Content-Type: text/plain; charset=windows-1253 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1254" -Content-Type: text/plain; charset=windows-1254 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1255" -Content-Type: text/plain; charset=windows-1255 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1256" -Content-Type: text/plain; charset=windows-1256 -Content-Transfer-Encoding: 8bit - - ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1257" -Content-Type: text/plain; charset=windows-1257 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-1258" -Content-Type: text/plain; charset=windows-1258 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-windows-31j" -Content-Type: text/plain; charset=windows-31j -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-Big5-HKSCS-2001" -Content-Type: text/plain; charset=x-Big5-HKSCS-2001 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-Big5-Solaris" -Content-Type: text/plain; charset=x-Big5-Solaris -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-euc-jp-linux" -Content-Type: text/plain; charset=x-euc-jp-linux -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-EUC-TW" -Content-Type: text/plain; charset=x-EUC-TW -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-eucJP-Open" -Content-Type: text/plain; charset=x-eucJP-Open -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1006" -Content-Type: text/plain; charset=x-IBM1006 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1025" -Content-Type: text/plain; charset=x-IBM1025 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1046" -Content-Type: text/plain; charset=x-IBM1046 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1097" -Content-Type: text/plain; charset=x-IBM1097 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1098" -Content-Type: text/plain; charset=x-IBM1098 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1112" -Content-Type: text/plain; charset=x-IBM1112 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1122" -Content-Type: text/plain; charset=x-IBM1122 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1123" -Content-Type: text/plain; charset=x-IBM1123 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1124" -Content-Type: text/plain; charset=x-IBM1124 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1166" -Content-Type: text/plain; charset=x-IBM1166 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1364" -Content-Type: text/plain; charset=x-IBM1364 -Content-Transfer-Encoding: 8bit - -ooo@oooo ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1381" -Content-Type: text/plain; charset=x-IBM1381 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM1383" -Content-Type: text/plain; charset=x-IBM1383 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM300" -Content-Type: text/plain; charset=x-IBM300 -Content-Transfer-Encoding: 8bit - -BoBoBoBoBoBoBoBo ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM33722" -Content-Type: text/plain; charset=x-IBM33722 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM737" -Content-Type: text/plain; charset=x-IBM737 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM833" -Content-Type: text/plain; charset=x-IBM833 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM834" -Content-Type: text/plain; charset=x-IBM834 -Content-Transfer-Encoding: 8bit - - ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM856" -Content-Type: text/plain; charset=x-IBM856 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM874" -Content-Type: text/plain; charset=x-IBM874 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM875" -Content-Type: text/plain; charset=x-IBM875 -Content-Transfer-Encoding: 8bit - -???@???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM921" -Content-Type: text/plain; charset=x-IBM921 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM922" -Content-Type: text/plain; charset=x-IBM922 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM930" -Content-Type: text/plain; charset=x-IBM930 -Content-Transfer-Encoding: 8bit - -ooo@oooo ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM933" -Content-Type: text/plain; charset=x-IBM933 -Content-Transfer-Encoding: 8bit - -ooo@oooo ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM935" -Content-Type: text/plain; charset=x-IBM935 -Content-Transfer-Encoding: 8bit - -ooo@oooo ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM937" -Content-Type: text/plain; charset=x-IBM937 -Content-Transfer-Encoding: 8bit - -ooo@oooo ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM939" -Content-Type: text/plain; charset=x-IBM939 -Content-Transfer-Encoding: 8bit - -ooo@oooo ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM942" -Content-Type: text/plain; charset=x-IBM942 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM942C" -Content-Type: text/plain; charset=x-IBM942C -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM943" -Content-Type: text/plain; charset=x-IBM943 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM943C" -Content-Type: text/plain; charset=x-IBM943C -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM948" -Content-Type: text/plain; charset=x-IBM948 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM949" -Content-Type: text/plain; charset=x-IBM949 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM949C" -Content-Type: text/plain; charset=x-IBM949C -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM950" -Content-Type: text/plain; charset=x-IBM950 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM964" -Content-Type: text/plain; charset=x-IBM964 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-IBM970" -Content-Type: text/plain; charset=x-IBM970 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-ISCII91" -Content-Type: text/plain; charset=x-ISCII91 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-ISO-2022-CN-CNS" -Content-Type: text/plain; charset=x-ISO-2022-CN-CNS -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-ISO-2022-CN-GB" -Content-Type: text/plain; charset=x-ISO-2022-CN-GB -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-iso-8859-11" -Content-Type: text/plain; charset=x-iso-8859-11 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-JIS0208" -Content-Type: text/plain; charset=x-JIS0208 -Content-Transfer-Encoding: 8bit - -!)!)!)!)!)!)!)!) ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-Johab" -Content-Type: text/plain; charset=x-Johab -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacArabic" -Content-Type: text/plain; charset=x-MacArabic -Content-Transfer-Encoding: 8bit - - ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacCentralEurope" -Content-Type: text/plain; charset=x-MacCentralEurope -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacCroatian" -Content-Type: text/plain; charset=x-MacCroatian -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacCyrillic" -Content-Type: text/plain; charset=x-MacCyrillic -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacDingbat" -Content-Type: text/plain; charset=x-MacDingbat -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacGreek" -Content-Type: text/plain; charset=x-MacGreek -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacHebrew" -Content-Type: text/plain; charset=x-MacHebrew -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacIceland" -Content-Type: text/plain; charset=x-MacIceland -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacRoman" -Content-Type: text/plain; charset=x-MacRoman -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacRomania" -Content-Type: text/plain; charset=x-MacRomania -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacSymbol" -Content-Type: text/plain; charset=x-MacSymbol -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacThai" -Content-Type: text/plain; charset=x-MacThai -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacTurkish" -Content-Type: text/plain; charset=x-MacTurkish -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MacUkraine" -Content-Type: text/plain; charset=x-MacUkraine -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MS932_0213" -Content-Type: text/plain; charset=x-MS932_0213 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MS950-HKSCS" -Content-Type: text/plain; charset=x-MS950-HKSCS -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-MS950-HKSCS-XP" -Content-Type: text/plain; charset=x-MS950-HKSCS-XP -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-mswin-936" -Content-Type: text/plain; charset=x-mswin-936 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-PCK" -Content-Type: text/plain; charset=x-PCK -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-SJIS_0213" -Content-Type: text/plain; charset=x-SJIS_0213 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-UTF-16LE-BOM" -Content-Type: text/plain; charset=x-UTF-16LE-BOM -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-X-UTF-32BE-BOM" -Content-Type: text/plain; charset=X-UTF-32BE-BOM -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-X-UTF-32LE-BOM" -Content-Type: text/plain; charset=X-UTF-32LE-BOM -Content-Transfer-Encoding: 8bit - -(1, ('(D ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-windows-50220" -Content-Type: text/plain; charset=x-windows-50220 -Content-Transfer-Encoding: 8bit - -$B!)!)!)(B $B!)!)!)!)(B ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-windows-50221" -Content-Type: text/plain; charset=x-windows-50221 -Content-Transfer-Encoding: 8bit - -$B!)!)!)(B $B!)!)!)!)(B ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-windows-874" -Content-Type: text/plain; charset=x-windows-874 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-windows-949" -Content-Type: text/plain; charset=x-windows-949 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-windows-950" -Content-Type: text/plain; charset=x-windows-950 -Content-Transfer-Encoding: 8bit - -??? ???? ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl -Content-Disposition: form-data; name="persian-x-windows-iso2022jp" -Content-Type: text/plain; charset=x-windows-iso2022jp -Content-Transfer-Encoding: 8bit - -$B!)!)!)(B $B!)!)!)!)(B ---CVnTR46ddexmZjsh1ORHg9QbCOiLhUYl-- diff --git a/jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.expected.txt b/jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.expected.txt deleted file mode 100644 index 1074a9a759b..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -Content-Type|multipart/form-data; boundary="94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0vTU2oHy5jk6_Kpxn2aE9EokEiRGox4eWfAYP8-" -Parts-Count|4 -Part-ContainsContents|reporter| -Part-ContainsContents|timestamp|2018-03-21T19:00:18+00:00 -Part-ContainsContents|comments|this also couldn't be parsed -Part-ContainsContents|attachment|cherry \ No newline at end of file diff --git a/jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.raw b/jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.raw deleted file mode 100644 index 200235e6d3b..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-inside-itself-binary.raw +++ /dev/null @@ -1,50 +0,0 @@ ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0vTU2oHy5jk6_Kpxn2aE9EokEiRGox4eWfAYP8- -Content-Disposition: form-data; name="reporter" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - - ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0vTU2oHy5jk6_Kpxn2aE9EokEiRGox4eWfAYP8- -Content-Disposition: form-data; name="timestamp" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -2018-03-21T19:00:18+00:00 ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0vTU2oHy5jk6_Kpxn2aE9EokEiRGox4eWfAYP8- -Content-Disposition: form-data; name="comments" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -this also couldn't be parsed ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0vTU2oHy5jk6_Kpxn2aE9EokEiRGox4eWfAYP8- -Content-Disposition: form-data; name="attachment" -Content-Type: application/octet-stream -Content-Transfer-Encoding: binary - ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0v -Content-Disposition: form-data; name="fruit" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -cherry ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0v -Content-Disposition: form-data; name="color" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -red ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0v -Content-Disposition: form-data; name="cost" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -$1.20 USG ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0v -Content-Disposition: form-data; name="comments" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0vTU2oHy5jk6_Kpxn2aE9EokEiRGox4eWfAYP8- ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0v-- - ---94GJ2MW4vpjh92qj-CHjUUIwb9X8Y2LqkU2Yxn0vTU2oHy5jk6_Kpxn2aE9EokEiRGox4eWfAYP8--- diff --git a/jetty-util/src/test/resources/multipart/multipart-inside-itself.expected.txt b/jetty-util/src/test/resources/multipart/multipart-inside-itself.expected.txt deleted file mode 100644 index 4f68cd2fa81..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-inside-itself.expected.txt +++ /dev/null @@ -1,6 +0,0 @@ -Content-Type|multipart/form-data; boundary="kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGjx5eCuVFbaeUZ9oK57JCp_p5wP86S5nY4re5x" -Parts-Count|4 -Part-ContainsContents|reporter| -Part-ContainsContents|timestamp|2018-03-21T18:52:18+00:00 -Part-ContainsContents|comments|this couldn't be parsed -Part-ContainsContents|attachment|banana \ No newline at end of file diff --git a/jetty-util/src/test/resources/multipart/multipart-inside-itself.raw b/jetty-util/src/test/resources/multipart/multipart-inside-itself.raw deleted file mode 100644 index 9157af95046..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-inside-itself.raw +++ /dev/null @@ -1,42 +0,0 @@ ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGjx5eCuVFbaeUZ9oK57JCp_p5wP86S5nY4re5x -Content-Disposition: form-data; name="reporter" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - - ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGjx5eCuVFbaeUZ9oK57JCp_p5wP86S5nY4re5x -Content-Disposition: form-data; name="timestamp" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -2018-03-21T18:52:18+00:00 ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGjx5eCuVFbaeUZ9oK57JCp_p5wP86S5nY4re5x -Content-Disposition: form-data; name="comments" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - -this couldn't be parsed ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGjx5eCuVFbaeUZ9oK57JCp_p5wP86S5nY4re5x -Content-Disposition: form-data; name="attachment" -Content-Type: text/plain; charset=ISO-8859-1 -Content-Transfer-Encoding: 8bit - ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGj -Content-Disposition: form-data; name="fruit" - -banana ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGj -Content-Disposition: form-data; name="color" - -yellow ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGj -Content-Disposition: form-data; name="cost" - -$0.12 USG ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGj -Content-Disposition: form-data; name="comments" - ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGjx5eCuVFbaeUZ9oK57JCp_p5wP86S5nY4re5x ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGj-- - ---kCFSwstIsIZkZtQ5JM7193kJYcK5WkyvoxsGjx5eCuVFbaeUZ9oK57JCp_p5wP86S5nY4re5x-- diff --git a/jetty-util/src/test/resources/multipart/multipart-number-browser.expected.txt b/jetty-util/src/test/resources/multipart/multipart-number-browser.expected.txt deleted file mode 100644 index ebc9f5eea84..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-number-browser.expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -Content-Type|multipart/form-data; boundary="RjYiyHVV9Phv7tYylzT1f94fvTC-s7oNKwB9_Y" -Parts-Count|1 -Part-ContainsContents|pi|3.14159265358979323846264338327950288419716939937510 diff --git a/jetty-util/src/test/resources/multipart/multipart-number-browser.raw b/jetty-util/src/test/resources/multipart/multipart-number-browser.raw deleted file mode 100644 index 11776ddfb78..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-number-browser.raw +++ /dev/null @@ -1,5 +0,0 @@ ---RjYiyHVV9Phv7tYylzT1f94fvTC-s7oNKwB9_Y -Content-Disposition: form-data; name="pi" - -3.14159265358979323846264338327950288419716939937510 ---RjYiyHVV9Phv7tYylzT1f94fvTC-s7oNKwB9_Y-- diff --git a/jetty-util/src/test/resources/multipart/multipart-number-strict.expected.txt b/jetty-util/src/test/resources/multipart/multipart-number-strict.expected.txt deleted file mode 100644 index 9156fb21e2b..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-number-strict.expected.txt +++ /dev/null @@ -1,3 +0,0 @@ -Content-Type|multipart/form-data; boundary="P6Uyk-Vikfbk_NqTfVF4DwNXrIxpN451pD1" -Parts-Count|1 -Part-ContainsContents|pi|3.14159265358979323846264338327950288419716939937510 diff --git a/jetty-util/src/test/resources/multipart/multipart-number-strict.raw b/jetty-util/src/test/resources/multipart/multipart-number-strict.raw deleted file mode 100644 index 5c5681665ba..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-number-strict.raw +++ /dev/null @@ -1,7 +0,0 @@ ---P6Uyk-Vikfbk_NqTfVF4DwNXrIxpN451pD1 -Content-Disposition: form-data; name="pi" -Content-Type: text/plain -Content-Transfer-Encoding: 8bit - -3.14159265358979323846264338327950288419716939937510 ---P6Uyk-Vikfbk_NqTfVF4DwNXrIxpN451pD1-- diff --git a/jetty-util/src/test/resources/multipart/multipart-sjis.expected.txt b/jetty-util/src/test/resources/multipart/multipart-sjis.expected.txt deleted file mode 100644 index 35e678b66df..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-sjis.expected.txt +++ /dev/null @@ -1,4 +0,0 @@ -Content-Type|multipart/form-data; boundary="VA2isIGmYNkgC3qrrGXnlQcWO17WB3a4npVQey" -Parts-Count|2 -Part-ContainsContents|japanese|健治 -Part-ContainsContents|hello|ャユ戆タ diff --git a/jetty-util/src/test/resources/multipart/multipart-sjis.raw b/jetty-util/src/test/resources/multipart/multipart-sjis.raw deleted file mode 100644 index 59e713a28b0..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-sjis.raw +++ /dev/null @@ -1,13 +0,0 @@ ---VA2isIGmYNkgC3qrrGXnlQcWO17WB3a4npVQey -Content-Disposition: form-data; name="japanese" -Content-Type: text/plain; charset=Shift_JIS -Content-Transfer-Encoding: 8bit - - ---VA2isIGmYNkgC3qrrGXnlQcWO17WB3a4npVQey -Content-Disposition: form-data; name="hello" -Content-Type: text/plain; charset=Shift_JIS -Content-Transfer-Encoding: 8bit - -?^ ---VA2isIGmYNkgC3qrrGXnlQcWO17WB3a4npVQey-- diff --git a/jetty-util/src/test/resources/multipart/multipart-strange-quoting.expected.txt b/jetty-util/src/test/resources/multipart/multipart-strange-quoting.expected.txt deleted file mode 100644 index 76408aa202a..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-strange-quoting.expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -Content-Type|multipart/form-data; boundary="tR61vgdxSzzv2FDycET2lt-OUZ1IW1GqA" -Parts-Count|4 -Part-ContainsContents|and "I" quote|Value 1 -Part-ContainsContents|and+%22I%22+quote|Value 2 -Part-ContainsContents|value"; what="whoa"|Value 3 diff --git a/jetty-util/src/test/resources/multipart/multipart-strange-quoting.raw b/jetty-util/src/test/resources/multipart/multipart-strange-quoting.raw deleted file mode 100644 index 38fa8862abc..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-strange-quoting.raw +++ /dev/null @@ -1,26 +0,0 @@ ---tR61vgdxSzzv2FDycET2lt-OUZ1IW1GqA -Content-Disposition: form-data; name="and \"I\" quote" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Value 1 ---tR61vgdxSzzv2FDycET2lt-OUZ1IW1GqA -Content-Disposition: form-data; name="and+%22I%22+quote" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Value 2 ---tR61vgdxSzzv2FDycET2lt-OUZ1IW1GqA -Content-Disposition: form-data; name="value\"; what=\"whoa\"" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Value 3 ---tR61vgdxSzzv2FDycET2lt-OUZ1IW1GqA -Content-Disposition: form-data; name="other\"; -what=\"Something\"" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Value 4 ---tR61vgdxSzzv2FDycET2lt-OUZ1IW1GqA-- diff --git a/jetty-util/src/test/resources/multipart/multipart-text-files.expected.txt b/jetty-util/src/test/resources/multipart/multipart-text-files.expected.txt deleted file mode 100644 index 82fe6e3a904..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-text-files.expected.txt +++ /dev/null @@ -1,9 +0,0 @@ -Content-Type|multipart/form-data; boundary="ny9C5eIZL7fsfPY9ONPy8Lxb6tkgEv1" -Parts-Count|3 -Part-ContainsContents|text|text default -Part-ContainsContents|file1|Content of a.txt -Part-ContainsContents|file2|Content of a.html -Part-Filename|file1|a.txt -Part-Filename|file2|a.html -Part-Sha1sum|file1|588A0F273CB5AFE9C8D76DD081812E672F2061E2 -Part-Sha1sum|file2|9A9005159AB90A6D2D9BACB5414EFE932F0CED85 \ No newline at end of file diff --git a/jetty-util/src/test/resources/multipart/multipart-text-files.raw b/jetty-util/src/test/resources/multipart/multipart-text-files.raw deleted file mode 100644 index c72d60aaea1..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-text-files.raw +++ /dev/null @@ -1,23 +0,0 @@ ---ny9C5eIZL7fsfPY9ONPy8Lxb6tkgEv1 -Content-Disposition: form-data; name="text" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -text default - ---ny9C5eIZL7fsfPY9ONPy8Lxb6tkgEv1 -Content-Type: text/plain; charset=UTF-8 -X-SHA1: 588A0F273CB5AFE9C8D76DD081812E672F2061E2 -Content-Disposition: form-data; name="file1"; filename="a.txt" -Content-Transfer-Encoding: binary - -Content of a.txt - ---ny9C5eIZL7fsfPY9ONPy8Lxb6tkgEv1 -Content-Type: text/html; charset=UTF-8 -X-SHA1: 9A9005159AB90A6D2D9BACB5414EFE932F0CED85 -Content-Disposition: form-data; name="file2"; filename="a.html" -Content-Transfer-Encoding: binary - -<!DOCTYPE html><title>Content of a.html. ---ny9C5eIZL7fsfPY9ONPy8Lxb6tkgEv1-- diff --git a/jetty-util/src/test/resources/multipart/multipart-unicode-names.expected.txt b/jetty-util/src/test/resources/multipart/multipart-unicode-names.expected.txt deleted file mode 100644 index 2c15cb6f6b4..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-unicode-names.expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -Content-Type|multipart/form-data; boundary="1R40qTSaEjDJPcArQiccT7vdpp0l02248R" -Parts-Count|2 -Part-ContainsContents|こんにちは世界|Greetings 1 -Part-ContainsContents|%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E4%B8%96%E7%95%8C|Greetings 2 - diff --git a/jetty-util/src/test/resources/multipart/multipart-unicode-names.raw b/jetty-util/src/test/resources/multipart/multipart-unicode-names.raw deleted file mode 100644 index 5afab43ef54..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-unicode-names.raw +++ /dev/null @@ -1,13 +0,0 @@ ---1R40qTSaEjDJPcArQiccT7vdpp0l02248R -Content-Disposition: form-data; name="こんにちは世界" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Greetings 1 ---1R40qTSaEjDJPcArQiccT7vdpp0l02248R -Content-Disposition: form-data; name="%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E4%B8%96%E7%95%8C" -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Greetings 2 ---1R40qTSaEjDJPcArQiccT7vdpp0l02248R-- diff --git a/jetty-util/src/test/resources/multipart/multipart-uppercase.expected.txt b/jetty-util/src/test/resources/multipart/multipart-uppercase.expected.txt deleted file mode 100644 index ef8470f4cc7..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-uppercase.expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -Content-Type|multipart/form-data; boundary="8Q4MHJ3LWIQEQQ_OXYU5U9ZLYEH60_CFZQYANCZ" -Parts-Count|2 -Part-ContainsContents|STATE|TEXAS -Part-ContainsContents|CITY|AUSTIN - diff --git a/jetty-util/src/test/resources/multipart/multipart-uppercase.raw b/jetty-util/src/test/resources/multipart/multipart-uppercase.raw deleted file mode 100644 index 3aecb111bc7..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-uppercase.raw +++ /dev/null @@ -1,13 +0,0 @@ ---8Q4MHJ3LWIQEQQ_OXYU5U9ZLYEH60_CFZQYANCZ -CONTENT-DISPOSITION: FORM-DATA; NAME="STATE" -CONTENT-TYPE: TEXT/PLAIN; CHARSET=WINDOWS-1252 -CONTENT-TRANSFER-ENCODING: 8BIT - -TEXAS ---8Q4MHJ3LWIQEQQ_OXYU5U9ZLYEH60_CFZQYANCZ -CONTENT-DISPOSITION: FORM-DATA; NAME="CITY" -CONTENT-TYPE: TEXT/PLAIN; CHARSET=WINDOWS-1252 -CONTENT-TRANSFER-ENCODING: 8BIT - -AUSTIN ---8Q4MHJ3LWIQEQQ_OXYU5U9ZLYEH60_CFZQYANCZ-- diff --git a/jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.expected.txt b/jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.expected.txt deleted file mode 100644 index e1863757719..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.expected.txt +++ /dev/null @@ -1,5 +0,0 @@ -Content-Type|multipart/form-data; boundary="qjIkwQOhaYfC2VEcL5j-9sjEK1FIsYMd5" -Parts-Count|1 -Part-ContainsContents|company|bob & frank's shoe repair - - diff --git a/jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.raw b/jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.raw deleted file mode 100644 index 994b267b26c..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-x-www-form-urlencoded.raw +++ /dev/null @@ -1,7 +0,0 @@ ---qjIkwQOhaYfC2VEcL5j-9sjEK1FIsYMd5 -Content-Disposition: form-data; name="company" -Content-Type: application/x-www-form-urlencoded; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -bob+%26+frank%27s+shoe+repair ---qjIkwQOhaYfC2VEcL5j-9sjEK1FIsYMd5-- diff --git a/jetty-util/src/test/resources/multipart/multipart-zencoding.expected.txt b/jetty-util/src/test/resources/multipart/multipart-zencoding.expected.txt deleted file mode 100644 index fda05113c8f..00000000000 --- a/jetty-util/src/test/resources/multipart/multipart-zencoding.expected.txt +++ /dev/null @@ -1,8 +0,0 @@ -Content-Type|multipart/form-data; boundary="UuAU1liVuDVE7wfJUYE72PUF9DZafZ" -Parts-Count|4 -Part-ContainsContents|zalgo-8|y͔͕͍o̪̞͎̥͇̤̕u'̛̰̫̳̰v̧̘̪̠̟̟e̥͈̱ ̥̠͇͎͕̜s̤e̺e̙ͅņ̜ ̲̟͝za̴͖̱̲͈̘l͖̖͓̙̮͔g͕̞͖͘o͕̤͈̗ ̯̲̹̲͓b͙͟e̞͎̜̗͈͉̭͞f̸or̰̩e̡̝̺,̸͕̙̥̼͇̜ ̪͇̹r̘̪ͅị͔̥͈ͅg̠̟̯͖̦͇ht͖̪͍͚̖͡?͙̝͖̞ -Part-ContainsContents|zalgo-16|y͔͕͍o̪̞͎̥͇̤̕u'̛̰̫̳̰v̧̘̪̠̟̟e̥͈̱ ̥̠͇͎͕̜s̤e̺e̙ͅņ̜ ̲̟͝za̴͖̱̲͈̘l͖̖͓̙̮͔g͕̞͖͘o͕̤͈̗ ̯̲̹̲͓b͙͟e̞͎̜̗͈͉̭͞f̸or̰̩e̡̝̺,̸͕̙̥̼͇̜ ̪͇̹r̘̪ͅị͔̥͈ͅg̠̟̯͖̦͇ht͖̪͍͚̖͡?͙̝͖̞ -Part-ContainsContents|zalgo-16-be|y͔͕͍o̪̞͎̥͇̤̕u'̛̰̫̳̰v̧̘̪̠̟̟e̥͈̱ ̥̠͇͎͕̜s̤e̺e̙ͅņ̜ ̲̟͝za̴͖̱̲͈̘l͖̖͓̙̮͔g͕̞͖͘o͕̤͈̗ ̯̲̹̲͓b͙͟e̞͎̜̗͈͉̭͞f̸or̰̩e̡̝̺,̸͕̙̥̼͇̜ ̪͇̹r̘̪ͅị͔̥͈ͅg̠̟̯͖̦͇ht͖̪͍͚̖͡?͙̝͖̞ -Part-ContainsContents|zalgo-16-le|y͔͕͍o̪̞͎̥͇̤̕u'̛̰̫̳̰v̧̘̪̠̟̟e̥͈̱ ̥̠͇͎͕̜s̤e̺e̙ͅņ̜ ̲̟͝za̴͖̱̲͈̘l͖̖͓̙̮͔g͕̞͖͘o͕̤͈̗ ̯̲̹̲͓b͙͟e̞͎̜̗͈͉̭͞f̸or̰̩e̡̝̺,̸͕̙̥̼͇̜ ̪͇̹r̘̪ͅị͔̥͈ͅg̠̟̯͖̦͇ht͖̪͍͚̖͡?͙̝͖̞ - - diff --git a/jetty-util/src/test/resources/multipart/multipart-zencoding.raw b/jetty-util/src/test/resources/multipart/multipart-zencoding.raw deleted file mode 100644 index 74d78b79fb5014723b7ed76f18238d714597fc57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1830 zcmeH{Pfrt36vbb1c1^leBqEN85|I(BMoQHXl>!`{U zPxi;#&fH9PwRa9!nSpTVs^n#axcpf_^4N`Jkt>dX9yQy5KRaFg5d|D3McDP$H{# zp`?plC|Oy75@|&!+4mPHkx@}r_=-?6TZR%X{H+Q~_9;UNpRP(1IE=ec^4%&ZK`8mx SQGpU2Y8OiUo=VdUhrR=F$o@_M