From e9c5e5e3700dc53352b77d67f5f86d4a8e48bc51 Mon Sep 17 00:00:00 2001 From: changeforeda <718034718@qq.com> Date: Sun, 20 Jan 2019 16:32:41 +0800 Subject: [PATCH 01/45] test --- test.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test.txt diff --git a/test.txt b/test.txt new file mode 100644 index 0000000..743853e --- /dev/null +++ b/test.txt @@ -0,0 +1 @@ +hellow github! \ No newline at end of file From 104186895869fb848af4ff2ad60ebff07c419245 Mon Sep 17 00:00:00 2001 From: changeforeda <718034718@qq.com> Date: Sun, 20 Jan 2019 19:59:56 +0800 Subject: [PATCH 02/45] upload code 2019.1.20 --- .../.idea/artifacts/DataProducer_jar.xml | 8 + .../.idea/artifacts/DataProducer_jar2.xml | 8 + .../.idea/artifacts/DataProducer_jar3.xml | 8 + code/DataProducer/.idea/misc.xml | 6 + code/DataProducer/.idea/modules.xml | 8 + code/DataProducer/.idea/workspace.xml | 276 +++ code/DataProducer/DataProducer.iml | 11 + .../DataProducer_jar/DataProducer.jar | Bin 0 -> 1929 bytes .../artifacts/DataProducer_jar2/weblogs.jar | Bin 0 -> 1929 bytes .../artifacts/DataProducer_jar3/weblogs.jar | Bin 0 -> 2205 bytes .../DataProducer/META-INF/MANIFEST.MF | 3 + .../production/DataProducer/ReadWrite.class | Bin 0 -> 3235 bytes code/DataProducer/src/META-INF/MANIFEST.MF | 3 + code/DataProducer/src/ReadWrite.java | 67 + .../flume-ng-sinks/flume-dataset-sink/pom.xml | 145 ++ .../apache/flume/sink/kite/DatasetSink.java | 582 ++++++ .../flume/sink/kite/DatasetSinkConstants.java | 132 ++ .../kite/NonRecoverableEventException.java | 53 + .../flume/sink/kite/parser/AvroParser.java | 208 ++ .../flume/sink/kite/parser/EntityParser.java | 56 + .../sink/kite/parser/EntityParserFactory.java | 81 + .../flume/sink/kite/policy/FailurePolicy.java | 105 + .../kite/policy/FailurePolicyFactory.java | 81 + .../flume/sink/kite/policy/RetryPolicy.java | 63 + .../flume/sink/kite/policy/SavePolicy.java | 128 ++ .../flume/sink/kite/TestDatasetSink.java | 1036 ++++++++++ .../src/test/resources/enable-kerberos.xml | 30 + code/flume-ng-sinks/flume-hdfs-sink/pom.xml | 196 ++ .../flume/sink/hdfs/AbstractHDFSWriter.java | 280 +++ .../flume/sink/hdfs/AvroEventSerializer.java | 211 ++ .../sink/hdfs/BucketClosedException.java | 30 + .../apache/flume/sink/hdfs/BucketWriter.java | 717 +++++++ .../sink/hdfs/HDFSCompressedDataStream.java | 162 ++ .../flume/sink/hdfs/HDFSDataStream.java | 140 ++ .../apache/flume/sink/hdfs/HDFSEventSink.java | 559 +++++ .../flume/sink/hdfs/HDFSSequenceFile.java | 122 ++ .../flume/sink/hdfs/HDFSTextSerializer.java | 79 + .../sink/hdfs/HDFSWritableSerializer.java | 77 + .../apache/flume/sink/hdfs/HDFSWriter.java | 47 + .../flume/sink/hdfs/HDFSWriterFactory.java | 43 + .../apache/flume/sink/hdfs/KerberosUser.java | 72 + .../sink/hdfs/SequenceFileSerializer.java | 68 + .../hdfs/SequenceFileSerializerFactory.java | 90 + .../sink/hdfs/SequenceFileSerializerType.java | 37 + .../flume/sink/hdfs/HDFSBadDataStream.java | 45 + .../flume/sink/hdfs/HDFSTestSeqWriter.java | 77 + .../sink/hdfs/HDFSTestWriterFactory.java | 42 + .../flume/sink/hdfs/MockDataStream.java | 39 + .../flume/sink/hdfs/MockFileSystem.java | 139 ++ .../sink/hdfs/MockFsDataOutputStream.java | 49 + .../flume/sink/hdfs/MockHDFSWriter.java | 95 + .../flume/sink/hdfs/MyCustomSerializer.java | 58 + .../sink/hdfs/TestAvroEventSerializer.java | 183 ++ .../flume/sink/hdfs/TestBucketWriter.java | 450 ++++ .../hdfs/TestHDFSCompressedDataStream.java | 141 ++ .../flume/sink/hdfs/TestHDFSEventSink.java | 1548 ++++++++++++++ .../hdfs/TestHDFSEventSinkOnMiniCluster.java | 486 +++++ .../TestSequenceFileSerializerFactory.java | 58 + .../sink/hdfs/TestUseRawLocalFileSystem.java | 95 + .../src/test/resources/log4j.properties | 26 + code/flume-ng-sinks/flume-hive-sink/pom.xml | 186 ++ .../org/apache/flume/sink/hive/Config.java | 41 + .../hive/HiveDelimitedTextSerializer.java | 115 ++ .../flume/sink/hive/HiveEventSerializer.java | 41 + .../flume/sink/hive/HiveJsonSerializer.java | 62 + .../org/apache/flume/sink/hive/HiveSink.java | 522 +++++ .../apache/flume/sink/hive/HiveWriter.java | 513 +++++ .../apache/flume/sink/hive/TestHiveSink.java | 423 ++++ .../flume/sink/hive/TestHiveWriter.java | 351 ++++ .../org/apache/flume/sink/hive/TestUtil.java | 233 +++ .../src/test/resources/log4j.properties | 26 + code/flume-ng-sinks/flume-irc-sink/pom.xml | 83 + .../org/apache/flume/sink/irc/IRCSink.java | 266 +++ .../apache/flume/sink/irc/TestIRCSink.java | 166 ++ .../flume-ng-elasticsearch-sink/pom.xml | 93 + ...asticSearchIndexRequestBuilderFactory.java | 124 ++ .../elasticsearch/ContentBuilderUtil.java | 87 + .../ElasticSearchDynamicSerializer.java | 73 + .../ElasticSearchEventSerializer.java | 48 + ...asticSearchIndexRequestBuilderFactory.java | 60 + .../ElasticSearchLogStashEventSerializer.java | 145 ++ .../sink/elasticsearch/ElasticSearchSink.java | 428 ++++ .../ElasticSearchSinkConstants.java | 111 + ...tSerializerIndexRequestBuilderFactory.java | 69 + .../sink/elasticsearch/IndexNameBuilder.java | 42 + .../elasticsearch/SimpleIndexNameBuilder.java | 46 + .../TimeBasedIndexNameBuilder.java | 92 + .../sink/elasticsearch/TimestampedEvent.java | 60 + .../client/ElasticSearchClient.java | 58 + .../client/ElasticSearchClientFactory.java | 78 + .../client/ElasticSearchRestClient.java | 149 ++ .../client/ElasticSearchTransportClient.java | 228 ++ .../client/NoSuchClientTypeException.java | 23 + .../elasticsearch/client/RoundRobinList.java | 44 + .../AbstractElasticSearchSinkTest.java | 164 ++ .../TestElasticSearchDynamicSerializer.java | 64 + ...asticSearchIndexRequestBuilderFactory.java | 215 ++ ...tElasticSearchLogStashEventSerializer.java | 127 ++ .../elasticsearch/TestElasticSearchSink.java | 505 +++++ .../TestElasticSearchSinkCreation.java | 49 + .../TimeBasedIndexNameBuilderTest.java | 60 + .../elasticsearch/TimestampedEventTest.java | 88 + .../client/RoundRobinListTest.java | 42 + .../TestElasticSearchClientFactory.java | 64 + .../client/TestElasticSearchRestClient.java | 180 ++ .../TestElasticSearchTransportClient.java | 127 ++ .../src/test/resources/log4j.properties | 25 + .../artifacts/flume_ng_hbase_sink_jar.xml | 8 + .../flume-ng-hbase-sink/.idea/compiler.xml | 13 + .../flume-ng-hbase-sink/.idea/encodings.xml | 6 + .../flume-ng-hbase-sink/.idea/misc.xml | 14 + .../flume-ng-hbase-sink/.idea/workspace.xml | 435 ++++ .../flume-ng-hbase-sink.jar | Bin 0 -> 45575 bytes .../flume-ng-hbase-sink/pom.xml | 255 +++ .../flume/sink/hbase/AsyncHBaseSink.java | 708 +++++++ .../sink/hbase/AsyncHbaseEventSerializer.java | 77 + .../apache/flume/sink/hbase/BatchAware.java | 28 + .../apache/flume/sink/hbase/HBaseSink.java | 558 +++++ .../HBaseSinkConfigurationConstants.java | 77 + .../sink/hbase/HbaseEventSerializer.java | 61 + .../hbase/KfkAsyncHbaseEventSerializer.java | 155 ++ .../sink/hbase/RegexHbaseEventSerializer.java | 215 ++ .../SimpleAsyncHbaseEventSerializer.java | 148 ++ .../hbase/SimpleHbaseEventSerializer.java | 146 ++ .../sink/hbase/SimpleRowKeyGenerator.java | 50 + .../hbase/IncrementAsyncHBaseSerializer.java | 78 + .../sink/hbase/IncrementHBaseSerializer.java | 80 + .../hbase/MockSimpleHbaseEventSerializer.java | 38 + .../flume/sink/hbase/TestAsyncHBaseSink.java | 618 ++++++ .../flume/sink/hbase/TestHBaseSink.java | 744 +++++++ .../sink/hbase/TestHBaseSinkCreation.java | 50 + .../hbase/TestRegexHbaseEventSerializer.java | 232 +++ .../flume/sink/hbase/AsyncHBaseSink$1.class | Bin 0 -> 1296 bytes .../flume/sink/hbase/AsyncHBaseSink$2.class | Bin 0 -> 1361 bytes .../flume/sink/hbase/AsyncHBaseSink$3.class | Bin 0 -> 1325 bytes .../flume/sink/hbase/AsyncHBaseSink$4.class | Bin 0 -> 1127 bytes .../hbase/AsyncHBaseSink$CellIdentifier.class | Bin 0 -> 1290 bytes .../AsyncHBaseSink$FailureCallback.class | Bin 0 -> 2901 bytes .../AsyncHBaseSink$SuccessCallback.class | Bin 0 -> 2360 bytes .../flume/sink/hbase/AsyncHBaseSink.class | Bin 0 -> 19238 bytes .../hbase/AsyncHbaseEventSerializer.class | Bin 0 -> 564 bytes .../apache/flume/sink/hbase/BatchAware.class | Bin 0 -> 158 bytes .../apache/flume/sink/hbase/HBaseSink$1.class | Bin 0 -> 1418 bytes .../apache/flume/sink/hbase/HBaseSink$2.class | Bin 0 -> 1433 bytes .../apache/flume/sink/hbase/HBaseSink$3.class | Bin 0 -> 1973 bytes .../apache/flume/sink/hbase/HBaseSink$4.class | Bin 0 -> 2485 bytes .../HBaseSink$DebugIncrementsCallback.class | Bin 0 -> 680 bytes .../apache/flume/sink/hbase/HBaseSink.class | Bin 0 -> 19435 bytes .../HBaseSinkConfigurationConstants.class | Bin 0 -> 1559 bytes .../sink/hbase/HbaseEventSerializer.class | Bin 0 -> 535 bytes .../hbase/KfkAsyncHbaseEventSerializer.class | Bin 0 -> 4336 bytes .../hbase/RegexHbaseEventSerializer.class | Bin 0 -> 7124 bytes .../SimpleAsyncHbaseEventSerializer$1.class | Bin 0 -> 1039 bytes .../SimpleAsyncHbaseEventSerializer.class | Bin 0 -> 4273 bytes .../SimpleHbaseEventSerializer$KeyType.class | Bin 0 -> 1409 bytes .../hbase/SimpleHbaseEventSerializer.class | Bin 0 -> 4082 bytes .../sink/hbase/SimpleRowKeyGenerator.class | Bin 0 -> 1534 bytes .../hbase/IncrementAsyncHBaseSerializer.class | Bin 0 -> 2226 bytes .../sink/hbase/IncrementHBaseSerializer.class | Bin 0 -> 2831 bytes .../MockSimpleHbaseEventSerializer.class | Bin 0 -> 856 bytes .../flume/sink/hbase/TestAsyncHBaseSink.class | Bin 0 -> 15686 bytes .../TestHBaseSink$CoalesceValidator.class | Bin 0 -> 3695 bytes .../flume/sink/hbase/TestHBaseSink.class | Bin 0 -> 19706 bytes .../sink/hbase/TestHBaseSinkCreation.class | Bin 0 -> 1712 bytes .../hbase/TestRegexHbaseEventSerializer.class | Bin 0 -> 8562 bytes .../flume-ng-kafka-sink/pom.xml | 91 + .../apache/flume/sink/kafka/KafkaSink.java | 460 +++++ .../flume/sink/kafka/KafkaSinkConstants.java | 63 + .../flume/sink/kafka/TestConstants.java | 27 + .../flume/sink/kafka/TestKafkaSink.java | 550 +++++ .../flume/sink/kafka/util/KafkaConsumer.java | 98 + .../flume/sink/kafka/util/KafkaLocal.java | 51 + .../flume/sink/kafka/util/TestUtil.java | 175 ++ .../flume/sink/kafka/util/ZooKeeperLocal.java | 61 + .../test/resources/kafka-server.properties | 118 ++ .../src/test/resources/log4j.properties | 78 + .../src/test/resources/zookeeper.properties | 20 + .../flume-ng-morphline-solr-sink/README.md | 20 + .../flume-ng-morphline-solr-sink/pom.xml | 139 ++ .../sink/solr/morphline/BlobDeserializer.java | 162 ++ .../sink/solr/morphline/BlobHandler.java | 129 ++ .../sink/solr/morphline/MorphlineHandler.java | 62 + .../solr/morphline/MorphlineHandlerImpl.java | 163 ++ .../solr/morphline/MorphlineInterceptor.java | 242 +++ .../sink/solr/morphline/MorphlineSink.java | 204 ++ .../solr/morphline/MorphlineSolrSink.java | 49 + .../sink/solr/morphline/UUIDInterceptor.java | 115 ++ .../sink/solr/morphline/EmbeddedSource.java | 45 + .../FlumeHttpServletRequestWrapper.java | 321 +++ .../ResettableTestStringInputStream.java | 89 + .../solr/morphline/TestBlobDeserializer.java | 122 ++ .../sink/solr/morphline/TestBlobHandler.java | 60 + .../sink/solr/morphline/TestEnvironment.java | 33 + .../morphline/TestMorphlineInterceptor.java | 167 ++ .../solr/morphline/TestMorphlineSolrSink.java | 431 ++++ .../solr/morphline/TestUUIDInterceptor.java | 63 + .../src/test/resources/custom-mimetypes.xml | 38 + .../src/test/resources/log4j.properties | 34 + .../solr/collection1/conf/currency.xml | 67 + .../solr/collection1/conf/elevate.xml | 38 + .../collection1/conf/lang/contractions_ca.txt | 8 + .../collection1/conf/lang/contractions_fr.txt | 9 + .../collection1/conf/lang/contractions_ga.txt | 5 + .../collection1/conf/lang/contractions_it.txt | 23 + .../collection1/conf/lang/hyphenations_ga.txt | 5 + .../collection1/conf/lang/stemdict_nl.txt | 6 + .../collection1/conf/lang/stoptags_ja.txt | 420 ++++ .../collection1/conf/lang/stopwords_ar.txt | 125 ++ .../collection1/conf/lang/stopwords_bg.txt | 193 ++ .../collection1/conf/lang/stopwords_ca.txt | 220 ++ .../collection1/conf/lang/stopwords_cz.txt | 172 ++ .../collection1/conf/lang/stopwords_da.txt | 108 + .../collection1/conf/lang/stopwords_de.txt | 292 +++ .../collection1/conf/lang/stopwords_el.txt | 78 + .../collection1/conf/lang/stopwords_en.txt | 54 + .../collection1/conf/lang/stopwords_es.txt | 354 ++++ .../collection1/conf/lang/stopwords_eu.txt | 99 + .../collection1/conf/lang/stopwords_fa.txt | 313 +++ .../collection1/conf/lang/stopwords_fi.txt | 95 + .../collection1/conf/lang/stopwords_fr.txt | 183 ++ .../collection1/conf/lang/stopwords_ga.txt | 110 + .../collection1/conf/lang/stopwords_gl.txt | 161 ++ .../collection1/conf/lang/stopwords_hi.txt | 235 +++ .../collection1/conf/lang/stopwords_hu.txt | 209 ++ .../collection1/conf/lang/stopwords_hy.txt | 46 + .../collection1/conf/lang/stopwords_id.txt | 359 ++++ .../collection1/conf/lang/stopwords_it.txt | 301 +++ .../collection1/conf/lang/stopwords_ja.txt | 127 ++ .../collection1/conf/lang/stopwords_lv.txt | 172 ++ .../collection1/conf/lang/stopwords_nl.txt | 117 ++ .../collection1/conf/lang/stopwords_no.txt | 192 ++ .../collection1/conf/lang/stopwords_pt.txt | 251 +++ .../collection1/conf/lang/stopwords_ro.txt | 233 +++ .../collection1/conf/lang/stopwords_ru.txt | 241 +++ .../collection1/conf/lang/stopwords_sv.txt | 131 ++ .../collection1/conf/lang/stopwords_th.txt | 119 ++ .../collection1/conf/lang/stopwords_tr.txt | 212 ++ .../collection1/conf/lang/userdict_ja.txt | 29 + .../solr/collection1/conf/protwords.txt | 21 + .../solr/collection1/conf/schema.xml | 947 +++++++++ .../solr/collection1/conf/solrconfig.xml | 1828 +++++++++++++++++ .../solr/collection1/conf/stopwords.txt | 14 + .../solr/collection1/conf/synonyms.txt | 29 + .../resources/test-documents/NullHeader.docx | Bin 0 -> 4355 bytes .../resources/test-documents/boilerplate.html | 41 + .../test/resources/test-documents/cars.csv | 6 + .../test/resources/test-documents/cars.csv.gz | Bin 0 -> 167 bytes .../test/resources/test-documents/cars.ssv | 6 + .../test/resources/test-documents/cars.tar.gz | Bin 0 -> 10240 bytes .../test/resources/test-documents/cars.tsv | 6 + .../resources/test-documents/complex.mbox | 291 +++ .../test-documents/multiline-sessions.log | 9 + ...ltiline-stacktrace-expected-long-event.log | 25 + .../test-documents/multiline-stacktrace.log | 30 + ...h-delimited-20130430-234145-tweets.json.gz | Bin 0 -> 955 bytes .../test/resources/test-documents/rsstest.rss | 36 + .../sample-statuses-20120906-141433 | 4 + ...ample-statuses-20120906-141433-medium.avro | Bin 0 -> 249540 bytes ...le-statuses-20120906-141433-subschema.avsc | 12 + .../sample-statuses-20120906-141433.avro | Bin 0 -> 1208 bytes .../sample-statuses-20120906-141433.avsc | 57 + .../sample-statuses-20120906-141433.bz2 | Bin 0 -> 1054 bytes .../sample-statuses-20120906-141433.gz | Bin 0 -> 907 bytes .../test-documents/test-documents.7z | Bin 0 -> 71931 bytes .../test-documents/test-documents.cpio | Bin 0 -> 116224 bytes .../test-documents/test-documents.tar | Bin 0 -> 133120 bytes .../test-documents/test-documents.tbz2 | Bin 0 -> 71127 bytes .../test-documents/test-documents.tgz | Bin 0 -> 69060 bytes .../test-documents/test-documents.zip | Bin 0 -> 68403 bytes .../resources/test-documents/test-outlook.msg | Bin 0 -> 19968 bytes .../test-documents/test-zip-of-zip.zip | Bin 0 -> 299 bytes .../resources/test-documents/testAIFF.aif | Bin 0 -> 3894 bytes .../test/resources/test-documents/testBMP.bmp | Bin 0 -> 22554 bytes .../resources/test-documents/testBMPfp.txt | 3 + .../resources/test-documents/testDITA.dita | 34 + .../resources/test-documents/testEMLX.emlx | 55 + .../resources/test-documents/testEXCEL.xls | Bin 0 -> 13824 bytes .../resources/test-documents/testEXCEL.xlsx | Bin 0 -> 9453 bytes .../resources/test-documents/testFLAC.flac | Bin 0 -> 10604 bytes .../resources/test-documents/testFLAC.oga | Bin 0 -> 10820 bytes .../test/resources/test-documents/testFLV.flv | Bin 0 -> 90580 bytes .../test/resources/test-documents/testGIF.gif | Bin 0 -> 8495 bytes .../test/resources/test-documents/testJAR.jar | Bin 0 -> 441 bytes .../test-documents/testJPEG_EXIF.jpg | Bin 0 -> 16357 bytes .../test-documents/testJPEG_EXIF.jpg.gz | Bin 0 -> 8595 bytes .../test-documents/testJPEG_EXIF.jpg.tar.gz | Bin 0 -> 8722 bytes .../test/resources/test-documents/testKML.kml | 917 +++++++++ .../resources/test-documents/testKeynote.key | Bin 0 -> 221745 bytes .../resources/test-documents/testMP3i18n.mp3 | Bin 0 -> 40832 bytes .../test/resources/test-documents/testMP4.m4a | Bin 0 -> 4770 bytes .../test-documents/testNumbers.numbers | Bin 0 -> 134571 bytes .../test/resources/test-documents/testPDF.pdf | Bin 0 -> 34824 bytes .../test/resources/test-documents/testPNG.png | Bin 0 -> 17041 bytes .../test/resources/test-documents/testPPM.ppm | 4 + .../test-documents/testPPT_various.ppt | Bin 0 -> 164352 bytes .../test-documents/testPPT_various.pptx | Bin 0 -> 56659 bytes .../test/resources/test-documents/testPSD.psd | Bin 0 -> 69410 bytes .../resources/test-documents/testPages.pages | Bin 0 -> 134152 bytes .../test/resources/test-documents/testRDF.rdf | 23 + .../test/resources/test-documents/testRFC822 | 41 + .../test-documents/testRTFVarious.rtf | 329 +++ .../test/resources/test-documents/testSVG.svg | 7 + .../resources/test-documents/testTIFF.tif | Bin 0 -> 25584 bytes .../resources/test-documents/testTrueType.ttf | Bin 0 -> 98724 bytes .../resources/test-documents/testVISIO.vsd | Bin 0 -> 45568 bytes .../resources/test-documents/testVORBIS.ogg | Bin 0 -> 4241 bytes .../test/resources/test-documents/testWAR.war | Bin 0 -> 1003 bytes .../test/resources/test-documents/testWAV.wav | Bin 0 -> 3884 bytes .../resources/test-documents/testWINMAIL.dat | Bin 0 -> 66276 bytes .../test/resources/test-documents/testWMA.wma | Bin 0 -> 27747 bytes .../test/resources/test-documents/testWMF.wmf | Bin 0 -> 51590 bytes .../test/resources/test-documents/testWMV.wmv | Bin 0 -> 113878 bytes .../test-documents/testWORD_various.doc | Bin 0 -> 35328 bytes .../test-documents/testWindows-x86-32.exe | Bin 0 -> 11723 bytes .../test/resources/test-documents/testXML.xml | 48 + .../grokIfNotMatchDropRecord.conf | 75 + .../test-morphlines/ifDetectMimeType.conf | 74 + .../test-morphlines/noOperation.conf | 27 + .../resources/test-morphlines/readClob.conf | 32 + .../solrCellDocumentTypes.conf | 260 +++ code/flume-ng-sinks/pom.xml | 98 + 321 files changed, 37130 insertions(+) create mode 100644 code/DataProducer/.idea/artifacts/DataProducer_jar.xml create mode 100644 code/DataProducer/.idea/artifacts/DataProducer_jar2.xml create mode 100644 code/DataProducer/.idea/artifacts/DataProducer_jar3.xml create mode 100644 code/DataProducer/.idea/misc.xml create mode 100644 code/DataProducer/.idea/modules.xml create mode 100644 code/DataProducer/.idea/workspace.xml create mode 100644 code/DataProducer/DataProducer.iml create mode 100644 code/DataProducer/out/artifacts/DataProducer_jar/DataProducer.jar create mode 100644 code/DataProducer/out/artifacts/DataProducer_jar2/weblogs.jar create mode 100644 code/DataProducer/out/artifacts/DataProducer_jar3/weblogs.jar create mode 100644 code/DataProducer/out/production/DataProducer/META-INF/MANIFEST.MF create mode 100644 code/DataProducer/out/production/DataProducer/ReadWrite.class create mode 100644 code/DataProducer/src/META-INF/MANIFEST.MF create mode 100644 code/DataProducer/src/ReadWrite.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/DatasetSink.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/DatasetSinkConstants.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/NonRecoverableEventException.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/parser/AvroParser.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/parser/EntityParser.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/parser/EntityParserFactory.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/policy/FailurePolicy.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/policy/FailurePolicyFactory.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/policy/RetryPolicy.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/main/java/org/apache/flume/sink/kite/policy/SavePolicy.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/test/java/org/apache/flume/sink/kite/TestDatasetSink.java create mode 100644 code/flume-ng-sinks/flume-dataset-sink/src/test/resources/enable-kerberos.xml create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/AbstractHDFSWriter.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/AvroEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketClosedException.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSCompressedDataStream.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSDataStream.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSEventSink.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSSequenceFile.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSTextSerializer.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSWritableSerializer.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSWriter.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSWriterFactory.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/KerberosUser.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/SequenceFileSerializer.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/SequenceFileSerializerFactory.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/SequenceFileSerializerType.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/HDFSBadDataStream.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/HDFSTestSeqWriter.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/HDFSTestWriterFactory.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/MockDataStream.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/MockFileSystem.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/MockFsDataOutputStream.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/MockHDFSWriter.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/MyCustomSerializer.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestAvroEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestBucketWriter.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestHDFSCompressedDataStream.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestHDFSEventSink.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestHDFSEventSinkOnMiniCluster.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestSequenceFileSerializerFactory.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestUseRawLocalFileSystem.java create mode 100644 code/flume-ng-sinks/flume-hdfs-sink/src/test/resources/log4j.properties create mode 100644 code/flume-ng-sinks/flume-hive-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/main/java/org/apache/flume/sink/hive/Config.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/main/java/org/apache/flume/sink/hive/HiveDelimitedTextSerializer.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/main/java/org/apache/flume/sink/hive/HiveEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/main/java/org/apache/flume/sink/hive/HiveJsonSerializer.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/main/java/org/apache/flume/sink/hive/HiveSink.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/main/java/org/apache/flume/sink/hive/HiveWriter.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/test/java/org/apache/flume/sink/hive/TestHiveSink.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/test/java/org/apache/flume/sink/hive/TestHiveWriter.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/test/java/org/apache/flume/sink/hive/TestUtil.java create mode 100644 code/flume-ng-sinks/flume-hive-sink/src/test/resources/log4j.properties create mode 100644 code/flume-ng-sinks/flume-irc-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-irc-sink/src/main/java/org/apache/flume/sink/irc/IRCSink.java create mode 100644 code/flume-ng-sinks/flume-irc-sink/src/test/java/org/apache/flume/sink/irc/TestIRCSink.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/AbstractElasticSearchIndexRequestBuilderFactory.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/ContentBuilderUtil.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/ElasticSearchDynamicSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/ElasticSearchEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/ElasticSearchIndexRequestBuilderFactory.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/ElasticSearchLogStashEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/ElasticSearchSink.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/ElasticSearchSinkConstants.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/EventSerializerIndexRequestBuilderFactory.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/IndexNameBuilder.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/SimpleIndexNameBuilder.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/TimeBasedIndexNameBuilder.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/TimestampedEvent.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/client/ElasticSearchClient.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/client/ElasticSearchClientFactory.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/client/ElasticSearchRestClient.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/client/ElasticSearchTransportClient.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/client/NoSuchClientTypeException.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/main/java/org/apache/flume/sink/elasticsearch/client/RoundRobinList.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/AbstractElasticSearchSinkTest.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/TestElasticSearchDynamicSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/TestElasticSearchIndexRequestBuilderFactory.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/TestElasticSearchLogStashEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/TestElasticSearchSink.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/TestElasticSearchSinkCreation.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/TimeBasedIndexNameBuilderTest.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/TimestampedEventTest.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/client/RoundRobinListTest.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/client/TestElasticSearchClientFactory.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/client/TestElasticSearchRestClient.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/java/org/apache/flume/sink/elasticsearch/client/TestElasticSearchTransportClient.java create mode 100644 code/flume-ng-sinks/flume-ng-elasticsearch-sink/src/test/resources/log4j.properties create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/.idea/artifacts/flume_ng_hbase_sink_jar.xml create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/.idea/compiler.xml create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/.idea/encodings.xml create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/.idea/misc.xml create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/.idea/workspace.xml create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/out/artifacts/flume_ng_hbase_sink_jar/flume-ng-hbase-sink.jar create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHBaseSink.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/BatchAware.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSink.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSinkConfigurationConstants.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/KfkAsyncHbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/RegexHbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleRowKeyGenerator.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementAsyncHBaseSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementHBaseSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/MockSimpleHbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestAsyncHBaseSink.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSink.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSinkCreation.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestRegexHbaseEventSerializer.java create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$1.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$2.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$3.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$4.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$CellIdentifier.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$FailureCallback.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$SuccessCallback.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/BatchAware.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$1.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$2.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$3.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$4.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$DebugIncrementsCallback.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSinkConfigurationConstants.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/KfkAsyncHbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/RegexHbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer$1.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer$KeyType.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleRowKeyGenerator.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/IncrementAsyncHBaseSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/IncrementHBaseSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/MockSimpleHbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestAsyncHBaseSink.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestHBaseSink$CoalesceValidator.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestHBaseSink.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestHBaseSinkCreation.class create mode 100644 code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestRegexHbaseEventSerializer.class create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSink.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSinkConstants.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestConstants.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestKafkaSink.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaConsumer.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaLocal.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/TestUtil.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/ZooKeeperLocal.java create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/kafka-server.properties create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/log4j.properties create mode 100644 code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/zookeeper.properties create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/README.md create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobDeserializer.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobHandler.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandler.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandlerImpl.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineInterceptor.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSink.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSolrSink.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/UUIDInterceptor.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/EmbeddedSource.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/FlumeHttpServletRequestWrapper.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/ResettableTestStringInputStream.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobDeserializer.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobHandler.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestEnvironment.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineInterceptor.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineSolrSink.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestUUIDInterceptor.java create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/custom-mimetypes.xml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/log4j.properties create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/currency.xml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/elevate.xml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ca.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_fr.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ga.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_it.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/hyphenations_ga.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stemdict_nl.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stoptags_ja.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ca.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_cz.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_el.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_en.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_eu.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ga.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_gl.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hy.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_id.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ja.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_lv.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_th.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_tr.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/userdict_ja.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/protwords.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/schema.xml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/solrconfig.xml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/stopwords.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/synonyms.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/NullHeader.docx create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/boilerplate.html create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.csv create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.csv.gz create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.ssv create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.tar.gz create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.tsv create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/complex.mbox create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-sessions.log create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace-expected-long-event.log create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace.log create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/non-length-delimited-20130430-234145-tweets.json.gz create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/rsstest.rss create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433 create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433-medium.avro create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433-subschema.avsc create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.avro create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.avsc create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.bz2 create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.gz create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.7z create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.cpio create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.tar create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.tbz2 create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.tgz create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.zip create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-outlook.msg create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-zip-of-zip.zip create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testAIFF.aif create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testBMP.bmp create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testBMPfp.txt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testDITA.dita create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEMLX.emlx create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEXCEL.xls create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEXCEL.xlsx create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLAC.flac create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLAC.oga create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLV.flv create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testGIF.gif create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJAR.jar create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJPEG_EXIF.jpg create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJPEG_EXIF.jpg.gz create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJPEG_EXIF.jpg.tar.gz create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testKML.kml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testKeynote.key create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testMP3i18n.mp3 create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testMP4.m4a create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testNumbers.numbers create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPDF.pdf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPNG.png create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPPM.ppm create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPPT_various.ppt create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPPT_various.pptx create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPSD.psd create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPages.pages create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRDF.rdf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRFC822 create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRTFVarious.rtf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testSVG.svg create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testTIFF.tif create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testTrueType.ttf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testVISIO.vsd create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testVORBIS.ogg create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWAR.war create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWAV.wav create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWINMAIL.dat create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWMA.wma create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWMF.wmf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWMV.wmv create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWORD_various.doc create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWindows-x86-32.exe create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testXML.xml create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/grokIfNotMatchDropRecord.conf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/ifDetectMimeType.conf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/noOperation.conf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/readClob.conf create mode 100644 code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/solrCellDocumentTypes.conf create mode 100644 code/flume-ng-sinks/pom.xml diff --git a/code/DataProducer/.idea/artifacts/DataProducer_jar.xml b/code/DataProducer/.idea/artifacts/DataProducer_jar.xml new file mode 100644 index 0000000..f034a42 --- /dev/null +++ b/code/DataProducer/.idea/artifacts/DataProducer_jar.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/DataProducer_jar + + + + + \ No newline at end of file diff --git a/code/DataProducer/.idea/artifacts/DataProducer_jar2.xml b/code/DataProducer/.idea/artifacts/DataProducer_jar2.xml new file mode 100644 index 0000000..596a7be --- /dev/null +++ b/code/DataProducer/.idea/artifacts/DataProducer_jar2.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/DataProducer_jar2 + + + + + \ No newline at end of file diff --git a/code/DataProducer/.idea/artifacts/DataProducer_jar3.xml b/code/DataProducer/.idea/artifacts/DataProducer_jar3.xml new file mode 100644 index 0000000..c23ab96 --- /dev/null +++ b/code/DataProducer/.idea/artifacts/DataProducer_jar3.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/DataProducer_jar3 + + + + + \ No newline at end of file diff --git a/code/DataProducer/.idea/misc.xml b/code/DataProducer/.idea/misc.xml new file mode 100644 index 0000000..0548357 --- /dev/null +++ b/code/DataProducer/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/code/DataProducer/.idea/modules.xml b/code/DataProducer/.idea/modules.xml new file mode 100644 index 0000000..1b3af89 --- /dev/null +++ b/code/DataProducer/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/code/DataProducer/.idea/workspace.xml b/code/DataProducer/.idea/workspace.xml new file mode 100644 index 0000000..daa8adc --- /dev/null +++ b/code/DataProducer/.idea/workspace.xml @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1546438606072 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flume-ng-hbase-sink:jar + + + + + + + + No facets are configured + + + + + + + + + + + + + + + 1.8 + + + + + + + + flume-ng-hbase-sink + + + + + + + + 1.8 + + + + + + + + Maven: aopalliance:aopalliance:1.0 + + + + + + + + \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/out/artifacts/flume_ng_hbase_sink_jar/flume-ng-hbase-sink.jar b/code/flume-ng-sinks/flume-ng-hbase-sink/out/artifacts/flume_ng_hbase_sink_jar/flume-ng-hbase-sink.jar new file mode 100644 index 0000000000000000000000000000000000000000..e1bcfa7bf7e7035097cd870402fcc24c06f7c506 GIT binary patch literal 45575 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 Xc`0yUU@Qm-9`Hp1ybTZLe*N@cg=s&P literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/pom.xml b/code/flume-ng-sinks/flume-ng-hbase-sink/pom.xml new file mode 100644 index 0000000..66ffa4d --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/pom.xml @@ -0,0 +1,255 @@ + + + + 4.0.0 + + flume-ng-sinks + org.apache.flume + 1.7.0 + + org.apache.flume.flume-ng-sinks + flume-ng-hbase-sink + Flume NG HBase Sink + + + + + org.apache.rat + apache-rat-plugin + + + + + + + org.apache.flume + flume-ng-sdk + + + + org.apache.flume + flume-ng-core + + + + org.apache.flume + flume-ng-configuration + + + + org.slf4j + slf4j-api + + + + com.google.guava + guava + + + + + org.hbase + asynchbase + + + + io.netty + netty + + + + org.slf4j + slf4j-log4j12 + test + + + + junit + junit + test + + + + org.apache.hadoop + ${hadoop.common.artifact.id} + true + + + + commons-io + commons-io + test + + + + commons-lang + commons-lang + + + + org.mockito + mockito-all + test + + + + org.apache.flume.flume-ng-sinks + flume-hdfs-sink + + + + + + + hadoop-1.0 + + + flume.hadoop.profile + 1 + + + + + org.apache.hadoop + hadoop-test + test + + + + com.sun.jersey + jersey-core + test + + + org.apache.hbase + hbase + true + + + + org.apache.hbase + hbase + tests + test + + + + org.apache.zookeeper + zookeeper + test + + + + + hadoop-2 + + + flume.hadoop.profile + 2 + + + + + org.apache.hadoop + hadoop-minicluster + test + + + org.apache.hbase + hbase + true + + + + org.apache.hbase + hbase + tests + test + + + + org.apache.zookeeper + zookeeper + test + + + + + hbase-1 + + + !flume.hadoop.profile + + + + + org.apache.hadoop + hadoop-minicluster + test + + + + org.apache.hbase + hbase-client + true + + + + org.apache.hbase + hbase-client + tests + test + + + + + org.apache.hbase + hbase-server + test + + + + org.apache.hbase + hbase-server + tests + test + + + + + + org.apache.hbase + hbase-common + true + + + org.apache.hbase + hbase-testing-util + test + + + + org.apache.zookeeper + zookeeper + test + + + + + + diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHBaseSink.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHBaseSink.java new file mode 100644 index 0000000..f120f59 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHBaseSink.java @@ -0,0 +1,708 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Charsets; +import com.google.common.base.Preconditions; +import com.google.common.base.Throwables; +import com.google.common.collect.Maps; +import com.google.common.primitives.UnsignedBytes; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import com.stumbleupon.async.Callback; +import org.apache.flume.Channel; +import org.apache.flume.ChannelException; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.FlumeException; +import org.apache.flume.Transaction; +import org.apache.flume.conf.Configurable; +import org.apache.flume.instrumentation.SinkCounter; +import org.apache.flume.sink.AbstractSink; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.zookeeper.ZKConfig; +import org.hbase.async.AtomicIncrementRequest; +import org.hbase.async.HBaseClient; +import org.hbase.async.PutRequest; +import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collection; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Condition; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +/** + * A simple sink which reads events from a channel and writes them to HBase. + * This Sink uses an asynchronous API internally and is likely to + * perform better. + * The Hbase configuration is picked up from the first hbase-site.xml + * encountered in the classpath. This sink supports batch reading of + * events from the channel, and writing them to Hbase, to minimize the number + * of flushes on the hbase tables. To use this sink, it has to be configured + * with certain mandatory parameters:

+ *

+ * table: The name of the table in Hbase to write to.

+ * columnFamily: The column family in Hbase to write to.

+ * Other optional parameters are:

+ * serializer: A class implementing + * {@link AsyncHbaseEventSerializer}. + * An instance of + * this class will be used to serialize events which are written to hbase.

+ * serializer.*: Passed in the configure() method to + * serializer + * as an object of {@link org.apache.flume.Context}.

+ * batchSize: This is the batch size used by the client. This is the + * maximum number of events the sink will commit per transaction. The default + * batch size is 100 events. + *

+ * timeout: The length of time in milliseconds the sink waits for + * callbacks from hbase for all events in a transaction. + * If no timeout is specified, the sink will wait forever.

+ *

+ * Note: Hbase does not guarantee atomic commits on multiple + * rows. So if a subset of events in a batch are written to disk by Hbase and + * Hbase fails, the flume transaction is rolled back, causing flume to write + * all the events in the transaction all over again, which will cause + * duplicates. The serializer is expected to take care of the handling of + * duplicates etc. HBase also does not support batch increments, so if + * multiple increments are returned by the serializer, then HBase failure + * will cause them to be re-written, when HBase comes back up. + */ +public class AsyncHBaseSink extends AbstractSink implements Configurable { + + private String tableName; + private byte[] columnFamily; + private long batchSize; + private static final Logger logger = LoggerFactory.getLogger(AsyncHBaseSink.class); + private AsyncHbaseEventSerializer serializer; + private String eventSerializerType; + private Context serializerContext; + private HBaseClient client; + private Configuration conf; + private Transaction txn; + private volatile boolean open = false; + private SinkCounter sinkCounter; + private long timeout; + private String zkQuorum; + private String zkBaseDir; + private ExecutorService sinkCallbackPool; + private boolean isTimeoutTest; + private boolean isCoalesceTest; + private boolean enableWal = true; + private boolean batchIncrements = false; + private volatile int totalCallbacksReceived = 0; + private int maxConsecutiveFails; + private Map incrementBuffer; + // The HBaseClient buffers the requests until a callback is received. In the event of a + // timeout, there is no way to clear these buffers. If there is a major cluster issue, this + // buffer can become too big and cause crashes. So if we hit a fixed number of HBase write + // failures/timeouts, then close the HBase Client (gracefully or not) and force a GC to get rid + // of the buffered data. + private int consecutiveHBaseFailures = 0; + private boolean lastTxnFailed = false; + + // Does not need to be thread-safe. Always called only from the sink's + // process method. + private final Comparator COMPARATOR = UnsignedBytes.lexicographicalComparator(); + + public AsyncHBaseSink() { + this(null); + } + + public AsyncHBaseSink(Configuration conf) { + this(conf, false, false); + } + + @VisibleForTesting + AsyncHBaseSink(Configuration conf, boolean isTimeoutTest, + boolean isCoalesceTest) { + this.conf = conf; + this.isTimeoutTest = isTimeoutTest; + this.isCoalesceTest = isCoalesceTest; + } + + @Override + public Status process() throws EventDeliveryException { + /* + * Reference to the boolean representing failure of the current transaction. + * Since each txn gets a new boolean, failure of one txn will not affect + * the next even if errbacks for the current txn get called while + * the next one is being processed. + * + */ + if (!open) { + throw new EventDeliveryException("Sink was never opened. " + + "Please fix the configuration."); + } + if (client == null) { + client = initHBaseClient(); + if (client == null) { + throw new EventDeliveryException("Could not establish connection to HBase!"); + } + } + AtomicBoolean txnFail = new AtomicBoolean(false); + AtomicInteger callbacksReceived = new AtomicInteger(0); + AtomicInteger callbacksExpected = new AtomicInteger(0); + final Lock lock = new ReentrantLock(); + final Condition condition = lock.newCondition(); + if (incrementBuffer != null) { + incrementBuffer.clear(); + } + /* + * Callbacks can be reused per transaction, since they share the same + * locks and conditions. + */ + Callback putSuccessCallback = + new SuccessCallback( + lock, callbacksReceived, condition); + Callback putFailureCallback = + new FailureCallback( + lock, callbacksReceived, txnFail, condition); + + Callback incrementSuccessCallback = + new SuccessCallback( + lock, callbacksReceived, condition); + Callback incrementFailureCallback = + new FailureCallback( + lock, callbacksReceived, txnFail, condition); + + Status status = Status.READY; + Channel channel = getChannel(); + txn = channel.getTransaction(); + txn.begin(); + + int i = 0; + try { + for (; i < batchSize; i++) { + Event event = channel.take(); + if (event == null) { + status = Status.BACKOFF; + if (i == 0) { + sinkCounter.incrementBatchEmptyCount(); + } else { + sinkCounter.incrementBatchUnderflowCount(); + } + break; + } else { + serializer.setEvent(event); + List actions = serializer.getActions(); + List increments = serializer.getIncrements(); + callbacksExpected.addAndGet(actions.size()); + if (!batchIncrements) { + callbacksExpected.addAndGet(increments.size()); + } + + for (PutRequest action : actions) { + action.setDurable(enableWal); + client.put(action).addCallbacks(putSuccessCallback, putFailureCallback); + } + for (AtomicIncrementRequest increment : increments) { + if (batchIncrements) { + CellIdentifier identifier = new CellIdentifier(increment.key(), + increment.qualifier()); + AtomicIncrementRequest request + = incrementBuffer.get(identifier); + if (request == null) { + incrementBuffer.put(identifier, increment); + } else { + request.setAmount(request.getAmount() + increment.getAmount()); + } + } else { + client.atomicIncrement(increment).addCallbacks( + incrementSuccessCallback, incrementFailureCallback); + } + } + } + } + if (batchIncrements) { + Collection increments = incrementBuffer.values(); + for (AtomicIncrementRequest increment : increments) { + client.atomicIncrement(increment).addCallbacks( + incrementSuccessCallback, incrementFailureCallback); + } + callbacksExpected.addAndGet(increments.size()); + } + client.flush(); + } catch (Throwable e) { + this.handleTransactionFailure(txn); + this.checkIfChannelExceptionAndThrow(e); + } + if (i == batchSize) { + sinkCounter.incrementBatchCompleteCount(); + } + sinkCounter.addToEventDrainAttemptCount(i); + + lock.lock(); + long startTime = System.nanoTime(); + long timeRemaining; + try { + while ((callbacksReceived.get() < callbacksExpected.get()) + && !txnFail.get()) { + timeRemaining = timeout - (System.nanoTime() - startTime); + timeRemaining = (timeRemaining >= 0) ? timeRemaining : 0; + try { + if (!condition.await(timeRemaining, TimeUnit.NANOSECONDS)) { + txnFail.set(true); + logger.warn("HBase callbacks timed out. " + + "Transaction will be rolled back."); + } + } catch (Exception ex) { + logger.error("Exception while waiting for callbacks from HBase."); + this.handleTransactionFailure(txn); + Throwables.propagate(ex); + } + } + } finally { + lock.unlock(); + } + + if (isCoalesceTest) { + totalCallbacksReceived += callbacksReceived.get(); + } + + /* + * At this point, either the txn has failed + * or all callbacks received and txn is successful. + * + * This need not be in the monitor, since all callbacks for this txn + * have been received. So txnFail will not be modified any more(even if + * it is, it is set from true to true only - false happens only + * in the next process call). + * + */ + if (txnFail.get()) { + // We enter this if condition only if the failure was due to HBase failure, so we make sure + // we track the consecutive failures. + if (lastTxnFailed) { + consecutiveHBaseFailures++; + } + lastTxnFailed = true; + this.handleTransactionFailure(txn); + throw new EventDeliveryException("Could not write events to Hbase. " + + "Transaction failed, and rolled back."); + } else { + try { + lastTxnFailed = false; + consecutiveHBaseFailures = 0; + txn.commit(); + txn.close(); + sinkCounter.addToEventDrainSuccessCount(i); + } catch (Throwable e) { + this.handleTransactionFailure(txn); + this.checkIfChannelExceptionAndThrow(e); + } + } + + return status; + } + + @Override + public void configure(Context context) { + tableName = context.getString(HBaseSinkConfigurationConstants.CONFIG_TABLE); + String cf = context.getString( + HBaseSinkConfigurationConstants.CONFIG_COLUMN_FAMILY); + batchSize = context.getLong( + HBaseSinkConfigurationConstants.CONFIG_BATCHSIZE, new Long(100)); + serializerContext = new Context(); + //If not specified, will use HBase defaults. + eventSerializerType = context.getString( + HBaseSinkConfigurationConstants.CONFIG_SERIALIZER); + Preconditions.checkNotNull(tableName, + "Table name cannot be empty, please specify in configuration file"); + Preconditions.checkNotNull(cf, + "Column family cannot be empty, please specify in configuration file"); + //Check foe event serializer, if null set event serializer type + if (eventSerializerType == null || eventSerializerType.isEmpty()) { + eventSerializerType = + "org.apache.flume.sink.hbase.SimpleAsyncHbaseEventSerializer"; + logger.info("No serializer defined, Will use default"); + } + serializerContext.putAll(context.getSubProperties( + HBaseSinkConfigurationConstants.CONFIG_SERIALIZER_PREFIX)); + columnFamily = cf.getBytes(Charsets.UTF_8); + try { + @SuppressWarnings("unchecked") + Class clazz = + (Class) + Class.forName(eventSerializerType); + serializer = clazz.newInstance(); + serializer.configure(serializerContext); + serializer.initialize(tableName.getBytes(Charsets.UTF_8), columnFamily); + } catch (Exception e) { + logger.error("Could not instantiate event serializer.", e); + Throwables.propagate(e); + } + + if (sinkCounter == null) { + sinkCounter = new SinkCounter(this.getName()); + } + timeout = context.getLong(HBaseSinkConfigurationConstants.CONFIG_TIMEOUT, + HBaseSinkConfigurationConstants.DEFAULT_TIMEOUT); + if (timeout <= 0) { + logger.warn("Timeout should be positive for Hbase sink. " + + "Sink will not timeout."); + timeout = HBaseSinkConfigurationConstants.DEFAULT_TIMEOUT; + } + //Convert to nanos. + timeout = TimeUnit.MILLISECONDS.toNanos(timeout); + + zkQuorum = context.getString( + HBaseSinkConfigurationConstants.ZK_QUORUM, "").trim(); + if (!zkQuorum.isEmpty()) { + zkBaseDir = context.getString( + HBaseSinkConfigurationConstants.ZK_ZNODE_PARENT, + HBaseSinkConfigurationConstants.DEFAULT_ZK_ZNODE_PARENT); + } else { + if (conf == null) { //In tests, we pass the conf in. + conf = HBaseConfiguration.create(); + } + zkQuorum = ZKConfig.getZKQuorumServersString(conf); + zkBaseDir = conf.get(HConstants.ZOOKEEPER_ZNODE_PARENT, + HConstants.DEFAULT_ZOOKEEPER_ZNODE_PARENT); + } + Preconditions.checkState(zkQuorum != null && !zkQuorum.isEmpty(), + "The Zookeeper quorum cannot be null and should be specified."); + + enableWal = context.getBoolean(HBaseSinkConfigurationConstants + .CONFIG_ENABLE_WAL, HBaseSinkConfigurationConstants.DEFAULT_ENABLE_WAL); + logger.info("The write to WAL option is set to: " + String.valueOf(enableWal)); + if (!enableWal) { + logger.warn("AsyncHBaseSink's enableWal configuration is set to false. " + + "All writes to HBase will have WAL disabled, and any data in the " + + "memstore of this region in the Region Server could be lost!"); + } + + batchIncrements = context.getBoolean( + HBaseSinkConfigurationConstants.CONFIG_COALESCE_INCREMENTS, + HBaseSinkConfigurationConstants.DEFAULT_COALESCE_INCREMENTS); + + if (batchIncrements) { + incrementBuffer = Maps.newHashMap(); + logger.info("Increment coalescing is enabled. Increments will be " + + "buffered."); + } + + maxConsecutiveFails = + context.getInteger(HBaseSinkConfigurationConstants.CONFIG_MAX_CONSECUTIVE_FAILS, + HBaseSinkConfigurationConstants.DEFAULT_MAX_CONSECUTIVE_FAILS); + + } + + @VisibleForTesting + int getTotalCallbacksReceived() { + return totalCallbacksReceived; + } + + @VisibleForTesting + boolean isConfNull() { + return conf == null; + } + + @Override + public void start() { + Preconditions.checkArgument(client == null, "Please call stop " + + "before calling start on an old instance."); + sinkCounter.start(); + sinkCounter.incrementConnectionCreatedCount(); + client = initHBaseClient(); + super.start(); + } + + private HBaseClient initHBaseClient() { + logger.info("Initializing HBase Client"); + + sinkCallbackPool = Executors.newCachedThreadPool(new ThreadFactoryBuilder() + .setNameFormat(this.getName() + " HBase Call Pool").build()); + logger.info("Callback pool created"); + client = new HBaseClient(zkQuorum, zkBaseDir, + new NioClientSocketChannelFactory(sinkCallbackPool, sinkCallbackPool)); + + final CountDownLatch latch = new CountDownLatch(1); + final AtomicBoolean fail = new AtomicBoolean(false); + client.ensureTableFamilyExists( + tableName.getBytes(Charsets.UTF_8), columnFamily).addCallbacks( + new Callback() { + @Override + public Object call(Object arg) throws Exception { + latch.countDown(); + logger.info("table found"); + return null; + } + }, + new Callback() { + @Override + public Object call(Object arg) throws Exception { + fail.set(true); + latch.countDown(); + return null; + } + }); + + try { + logger.info("waiting on callback"); + latch.await(); + logger.info("callback received"); + } catch (InterruptedException e) { + sinkCounter.incrementConnectionFailedCount(); + throw new FlumeException( + "Interrupted while waiting for Hbase Callbacks", e); + } + if (fail.get()) { + sinkCounter.incrementConnectionFailedCount(); + if (client != null) { + shutdownHBaseClient(); + } + throw new FlumeException( + "Could not start sink. " + + "Table or column family does not exist in Hbase."); + } else { + open = true; + } + client.setFlushInterval((short) 0); + return client; + } + + @Override + public void stop() { + serializer.cleanUp(); + if (client != null) { + shutdownHBaseClient(); + } + sinkCounter.incrementConnectionClosedCount(); + sinkCounter.stop(); + + try { + if (sinkCallbackPool != null) { + sinkCallbackPool.shutdown(); + if (!sinkCallbackPool.awaitTermination(5, TimeUnit.SECONDS)) { + sinkCallbackPool.shutdownNow(); + } + } + } catch (InterruptedException e) { + logger.error("Interrupted while waiting for asynchbase sink pool to " + + "die", e); + if (sinkCallbackPool != null) { + sinkCallbackPool.shutdownNow(); + } + } + sinkCallbackPool = null; + client = null; + conf = null; + open = false; + super.stop(); + } + + private void shutdownHBaseClient() { + logger.info("Shutting down HBase Client"); + final CountDownLatch waiter = new CountDownLatch(1); + try { + client.shutdown().addCallback(new Callback() { + @Override + public Object call(Object arg) throws Exception { + waiter.countDown(); + return null; + } + }).addErrback(new Callback() { + @Override + public Object call(Object arg) throws Exception { + logger.error("Failed to shutdown HBase client cleanly! HBase cluster might be down"); + waiter.countDown(); + return null; + } + }); + if (!waiter.await(timeout, TimeUnit.NANOSECONDS)) { + logger.error("HBase connection could not be closed within timeout! HBase cluster might " + + "be down!"); + } + } catch (Exception ex) { + logger.warn("Error while attempting to close connections to HBase"); + } finally { + // Dereference the client to force GC to clear up any buffered requests. + client = null; + } + } + + private void handleTransactionFailure(Transaction txn) + throws EventDeliveryException { + if (maxConsecutiveFails > 0 && consecutiveHBaseFailures >= maxConsecutiveFails) { + if (client != null) { + shutdownHBaseClient(); + } + consecutiveHBaseFailures = 0; + } + try { + txn.rollback(); + } catch (Throwable e) { + logger.error("Failed to commit transaction." + + "Transaction rolled back.", e); + if (e instanceof Error || e instanceof RuntimeException) { + logger.error("Failed to commit transaction." + + "Transaction rolled back.", e); + Throwables.propagate(e); + } else { + logger.error("Failed to commit transaction." + + "Transaction rolled back.", e); + throw new EventDeliveryException("Failed to commit transaction." + + "Transaction rolled back.", e); + } + } finally { + txn.close(); + } + } + + private class SuccessCallback implements Callback { + private Lock lock; + private AtomicInteger callbacksReceived; + private Condition condition; + private final boolean isTimeoutTesting; + + public SuccessCallback(Lock lck, AtomicInteger callbacksReceived, + Condition condition) { + lock = lck; + this.callbacksReceived = callbacksReceived; + this.condition = condition; + isTimeoutTesting = isTimeoutTest; + } + + @Override + public R call(T arg) throws Exception { + if (isTimeoutTesting) { + try { + //tests set timeout to 10 seconds, so sleep for 4 seconds + TimeUnit.NANOSECONDS.sleep(TimeUnit.SECONDS.toNanos(4)); + } catch (InterruptedException e) { + //ignore + } + } + doCall(); + return null; + } + + private void doCall() throws Exception { + callbacksReceived.incrementAndGet(); + lock.lock(); + try { + condition.signal(); + } finally { + lock.unlock(); + } + } + } + + private class FailureCallback implements Callback { + private Lock lock; + private AtomicInteger callbacksReceived; + private AtomicBoolean txnFail; + private Condition condition; + private final boolean isTimeoutTesting; + + public FailureCallback(Lock lck, AtomicInteger callbacksReceived, + AtomicBoolean txnFail, Condition condition) { + this.lock = lck; + this.callbacksReceived = callbacksReceived; + this.txnFail = txnFail; + this.condition = condition; + isTimeoutTesting = isTimeoutTest; + } + + @Override + public R call(T arg) throws Exception { + logger.error("failure callback:", arg); + if (isTimeoutTesting) { + //tests set timeout to 10 seconds, so sleep for 4 seconds + try { + TimeUnit.NANOSECONDS.sleep(TimeUnit.SECONDS.toNanos(4)); + } catch (InterruptedException e) { + //ignore + } + } + doCall(); + return null; + } + + private void doCall() throws Exception { + callbacksReceived.incrementAndGet(); + this.txnFail.set(true); + lock.lock(); + try { + condition.signal(); + } finally { + lock.unlock(); + } + } + } + + private void checkIfChannelExceptionAndThrow(Throwable e) + throws EventDeliveryException { + if (e instanceof ChannelException) { + throw new EventDeliveryException("Error in processing transaction.", e); + } else if (e instanceof Error || e instanceof RuntimeException) { + Throwables.propagate(e); + } + throw new EventDeliveryException("Error in processing transaction.", e); + } + + private class CellIdentifier { + private final byte[] row; + private final byte[] column; + private final int hashCode; + + // Since the sink operates only on one table and one cf, + // we use the data from the owning sink + public CellIdentifier(byte[] row, byte[] column) { + this.row = row; + this.column = column; + this.hashCode = + (Arrays.hashCode(row) * 31) * (Arrays.hashCode(column) * 31); + } + + @Override + public int hashCode() { + return hashCode; + } + + // Since we know that this class is used from only this class, + // skip the class comparison to save time + @Override + public boolean equals(Object other) { + CellIdentifier o = (CellIdentifier) other; + if (other == null) { + return false; + } else { + return (COMPARATOR.compare(row, o.row) == 0 + && COMPARATOR.compare(column, o.column) == 0); + } + } + } +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHbaseEventSerializer.java new file mode 100644 index 0000000..481fce8 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/AsyncHbaseEventSerializer.java @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import java.util.List; + +import org.apache.flume.Event; +import org.apache.flume.conf.Configurable; +import org.apache.flume.conf.ConfigurableComponent; +import org.hbase.async.AtomicIncrementRequest; +import org.hbase.async.PutRequest; + +/** + * Interface for an event serializer which serializes the headers and body + * of an event to write them to hbase. This is configurable, so any config + * params required should be taken through this. + * The table should be valid on the column family. An implementation + * of this interface is expected by the {@linkplain AsyncHBaseSink} to serialize + * the events. + */ +public interface AsyncHbaseEventSerializer extends Configurable, ConfigurableComponent { + + /** + * Initialize the event serializer. + * @param table - The table the serializer should use when creating + * {@link org.hbase.async.PutRequest} or + * {@link org.hbase.async.AtomicIncrementRequest}. + * @param cf - The column family to be used. + */ + public void initialize(byte[] table, byte[] cf); + + /** + * @param event Event to be written to HBase + */ + public void setEvent(Event event); + + /** + * Get the actions that should be written out to hbase as a result of this + * event. This list is written to hbase. + * @return List of {@link org.hbase.async.PutRequest} which + * are written as such to HBase. + * + * + */ + public List getActions(); + + /** + * Get the increments that should be made in hbase as a result of this + * event. This list is written to hbase. + * @return List of {@link org.hbase.async.AtomicIncrementRequest} which + * are written as such to HBase. + * + * + */ + public List getIncrements(); + + /** + * Clean up any state. This will be called when the sink is being stopped. + */ + public void cleanUp(); +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/BatchAware.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/BatchAware.java new file mode 100644 index 0000000..0974241 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/BatchAware.java @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +/** + * This interface allows for implementing HBase serializers that are aware of + * batching. {@link #onBatchStart()} is called at the beginning of each batch + * by the sink. + */ +public interface BatchAware { + public void onBatchStart(); +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSink.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSink.java new file mode 100644 index 0000000..4c8b52b --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSink.java @@ -0,0 +1,558 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Charsets; +import com.google.common.base.Preconditions; +import com.google.common.base.Throwables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.apache.flume.Channel; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.FlumeException; +import org.apache.flume.Transaction; +import org.apache.flume.annotations.InterfaceAudience; +import org.apache.flume.auth.FlumeAuthenticationUtil; +import org.apache.flume.auth.PrivilegedExecutor; +import org.apache.flume.conf.Configurable; +import org.apache.flume.instrumentation.SinkCounter; +import org.apache.flume.sink.AbstractSink; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.Increment; +import org.apache.hadoop.hbase.client.Put; +import org.apache.hadoop.hbase.client.Row; +import org.apache.hadoop.hbase.util.Bytes; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.security.PrivilegedExceptionAction; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.NavigableMap; + +/** + * A simple sink which reads events from a channel and writes them to HBase. + * The Hbase configuration is picked up from the first hbase-site.xml + * encountered in the classpath. This sink supports batch reading of + * events from the channel, and writing them to Hbase, to minimize the number + * of flushes on the hbase tables. To use this sink, it has to be configured + * with certain mandatory parameters:

+ * table: The name of the table in Hbase to write to.

+ * columnFamily: The column family in Hbase to write to.

+ * This sink will commit each transaction if the table's write buffer size is + * reached or if the number of events in the current transaction reaches the + * batch size, whichever comes first.

+ * Other optional parameters are:

+ * serializer: A class implementing {@link HbaseEventSerializer}. + * An instance of + * this class will be used to write out events to hbase.

+ * serializer.*: Passed in the configure() method to serializer + * as an object of {@link org.apache.flume.Context}.

+ * batchSize: This is the batch size used by the client. This is the + * maximum number of events the sink will commit per transaction. The default + * batch size is 100 events. + *

+ *

+ * Note: While this sink flushes all events in a transaction + * to HBase in one shot, Hbase does not guarantee atomic commits on multiple + * rows. So if a subset of events in a batch are written to disk by Hbase and + * Hbase fails, the flume transaction is rolled back, causing flume to write + * all the events in the transaction all over again, which will cause + * duplicates. The serializer is expected to take care of the handling of + * duplicates etc. HBase also does not support batch increments, so if + * multiple increments are returned by the serializer, then HBase failure + * will cause them to be re-written, when HBase comes back up. + */ +public class HBaseSink extends AbstractSink implements Configurable { + private String tableName; + private byte[] columnFamily; + private HTable table; + private long batchSize; + private Configuration config; + private static final Logger logger = LoggerFactory.getLogger(HBaseSink.class); + private HbaseEventSerializer serializer; + private String eventSerializerType; + private Context serializerContext; + private String kerberosPrincipal; + private String kerberosKeytab; + private boolean enableWal = true; + private boolean batchIncrements = false; + private Method refGetFamilyMap = null; + private SinkCounter sinkCounter; + private PrivilegedExecutor privilegedExecutor; + + // Internal hooks used for unit testing. + private DebugIncrementsCallback debugIncrCallback = null; + + public HBaseSink() { + this(HBaseConfiguration.create()); + } + + public HBaseSink(Configuration conf) { + this.config = conf; + } + + @VisibleForTesting + @InterfaceAudience.Private + HBaseSink(Configuration conf, DebugIncrementsCallback cb) { + this(conf); + this.debugIncrCallback = cb; + } + + @Override + public void start() { + Preconditions.checkArgument(table == null, "Please call stop " + + "before calling start on an old instance."); + try { + privilegedExecutor = + FlumeAuthenticationUtil.getAuthenticator(kerberosPrincipal, kerberosKeytab); + } catch (Exception ex) { + sinkCounter.incrementConnectionFailedCount(); + throw new FlumeException("Failed to login to HBase using " + + "provided credentials.", ex); + } + try { + table = privilegedExecutor.execute(new PrivilegedExceptionAction() { + @Override + public HTable run() throws Exception { + HTable table = new HTable(config, tableName); + table.setAutoFlush(false); + // Flush is controlled by us. This ensures that HBase changing + // their criteria for flushing does not change how we flush. + return table; + } + }); + } catch (Exception e) { + sinkCounter.incrementConnectionFailedCount(); + logger.error("Could not load table, " + tableName + + " from HBase", e); + throw new FlumeException("Could not load table, " + tableName + + " from HBase", e); + } + try { + if (!privilegedExecutor.execute(new PrivilegedExceptionAction() { + @Override + public Boolean run() throws IOException { + return table.getTableDescriptor().hasFamily(columnFamily); + } + })) { + throw new IOException("Table " + tableName + + " has no such column family " + Bytes.toString(columnFamily)); + } + } catch (Exception e) { + //Get getTableDescriptor also throws IOException, so catch the IOException + //thrown above or by the getTableDescriptor() call. + sinkCounter.incrementConnectionFailedCount(); + throw new FlumeException("Error getting column family from HBase." + + "Please verify that the table " + tableName + " and Column Family, " + + Bytes.toString(columnFamily) + " exists in HBase, and the" + + " current user has permissions to access that table.", e); + } + + super.start(); + sinkCounter.incrementConnectionCreatedCount(); + sinkCounter.start(); + } + + @Override + public void stop() { + try { + if (table != null) { + table.close(); + } + table = null; + } catch (IOException e) { + throw new FlumeException("Error closing table.", e); + } + sinkCounter.incrementConnectionClosedCount(); + sinkCounter.stop(); + } + + @SuppressWarnings("unchecked") + @Override + public void configure(Context context) { + tableName = context.getString(HBaseSinkConfigurationConstants.CONFIG_TABLE); + String cf = context.getString( + HBaseSinkConfigurationConstants.CONFIG_COLUMN_FAMILY); + batchSize = context.getLong( + HBaseSinkConfigurationConstants.CONFIG_BATCHSIZE, new Long(100)); + serializerContext = new Context(); + //If not specified, will use HBase defaults. + eventSerializerType = context.getString( + HBaseSinkConfigurationConstants.CONFIG_SERIALIZER); + Preconditions.checkNotNull(tableName, + "Table name cannot be empty, please specify in configuration file"); + Preconditions.checkNotNull(cf, + "Column family cannot be empty, please specify in configuration file"); + //Check foe event serializer, if null set event serializer type + if (eventSerializerType == null || eventSerializerType.isEmpty()) { + eventSerializerType = + "org.apache.flume.sink.hbase.SimpleHbaseEventSerializer"; + logger.info("No serializer defined, Will use default"); + } + serializerContext.putAll(context.getSubProperties( + HBaseSinkConfigurationConstants.CONFIG_SERIALIZER_PREFIX)); + columnFamily = cf.getBytes(Charsets.UTF_8); + try { + Class clazz = + (Class) + Class.forName(eventSerializerType); + serializer = clazz.newInstance(); + serializer.configure(serializerContext); + } catch (Exception e) { + logger.error("Could not instantiate event serializer.", e); + Throwables.propagate(e); + } + kerberosKeytab = context.getString(HBaseSinkConfigurationConstants.CONFIG_KEYTAB); + kerberosPrincipal = context.getString(HBaseSinkConfigurationConstants.CONFIG_PRINCIPAL); + + enableWal = context.getBoolean(HBaseSinkConfigurationConstants + .CONFIG_ENABLE_WAL, HBaseSinkConfigurationConstants.DEFAULT_ENABLE_WAL); + logger.info("The write to WAL option is set to: " + String.valueOf(enableWal)); + if (!enableWal) { + logger.warn("HBase Sink's enableWal configuration is set to false. All " + + "writes to HBase will have WAL disabled, and any data in the " + + "memstore of this region in the Region Server could be lost!"); + } + + batchIncrements = context.getBoolean( + HBaseSinkConfigurationConstants.CONFIG_COALESCE_INCREMENTS, + HBaseSinkConfigurationConstants.DEFAULT_COALESCE_INCREMENTS); + + if (batchIncrements) { + logger.info("Increment coalescing is enabled. Increments will be " + + "buffered."); + refGetFamilyMap = reflectLookupGetFamilyMap(); + } + + String zkQuorum = context.getString(HBaseSinkConfigurationConstants + .ZK_QUORUM); + Integer port = null; + /** + * HBase allows multiple nodes in the quorum, but all need to use the + * same client port. So get the nodes in host:port format, + * and ignore the ports for all nodes except the first one. If no port is + * specified, use default. + */ + if (zkQuorum != null && !zkQuorum.isEmpty()) { + StringBuilder zkBuilder = new StringBuilder(); + logger.info("Using ZK Quorum: " + zkQuorum); + String[] zkHosts = zkQuorum.split(","); + int length = zkHosts.length; + for (int i = 0; i < length; i++) { + String[] zkHostAndPort = zkHosts[i].split(":"); + zkBuilder.append(zkHostAndPort[0].trim()); + if (i != length - 1) { + zkBuilder.append(","); + } else { + zkQuorum = zkBuilder.toString(); + } + if (zkHostAndPort[1] == null) { + throw new FlumeException("Expected client port for the ZK node!"); + } + if (port == null) { + port = Integer.parseInt(zkHostAndPort[1].trim()); + } else if (!port.equals(Integer.parseInt(zkHostAndPort[1].trim()))) { + throw new FlumeException("All Zookeeper nodes in the quorum must " + + "use the same client port."); + } + } + if (port == null) { + port = HConstants.DEFAULT_ZOOKEPER_CLIENT_PORT; + } + this.config.set(HConstants.ZOOKEEPER_QUORUM, zkQuorum); + this.config.setInt(HConstants.ZOOKEEPER_CLIENT_PORT, port); + } + String hbaseZnode = context.getString( + HBaseSinkConfigurationConstants.ZK_ZNODE_PARENT); + if (hbaseZnode != null && !hbaseZnode.isEmpty()) { + this.config.set(HConstants.ZOOKEEPER_ZNODE_PARENT, hbaseZnode); + } + sinkCounter = new SinkCounter(this.getName()); + } + + public Configuration getConfig() { + return config; + } + + @Override + public Status process() throws EventDeliveryException { + Status status = Status.READY; + Channel channel = getChannel(); + Transaction txn = channel.getTransaction(); + List actions = new LinkedList(); + List incs = new LinkedList(); + try { + txn.begin(); + + if (serializer instanceof BatchAware) { + ((BatchAware) serializer).onBatchStart(); + } + + long i = 0; + for (; i < batchSize; i++) { + Event event = channel.take(); + if (event == null) { + if (i == 0) { + status = Status.BACKOFF; + sinkCounter.incrementBatchEmptyCount(); + } else { + sinkCounter.incrementBatchUnderflowCount(); + } + break; + } else { + serializer.initialize(event, columnFamily); + actions.addAll(serializer.getActions()); + incs.addAll(serializer.getIncrements()); + } + } + if (i == batchSize) { + sinkCounter.incrementBatchCompleteCount(); + } + sinkCounter.addToEventDrainAttemptCount(i); + + putEventsAndCommit(actions, incs, txn); + + } catch (Throwable e) { + try { + txn.rollback(); + } catch (Exception e2) { + logger.error("Exception in rollback. Rollback might not have been " + + "successful.", e2); + } + logger.error("Failed to commit transaction." + + "Transaction rolled back.", e); + if (e instanceof Error || e instanceof RuntimeException) { + logger.error("Failed to commit transaction." + + "Transaction rolled back.", e); + Throwables.propagate(e); + } else { + logger.error("Failed to commit transaction." + + "Transaction rolled back.", e); + throw new EventDeliveryException("Failed to commit transaction." + + "Transaction rolled back.", e); + } + } finally { + txn.close(); + } + return status; + } + + private void putEventsAndCommit(final List actions, + final List incs, Transaction txn) throws Exception { + + privilegedExecutor.execute(new PrivilegedExceptionAction() { + @Override + public Void run() throws Exception { + for (Row r : actions) { + if (r instanceof Put) { + ((Put) r).setWriteToWAL(enableWal); + } + // Newer versions of HBase - Increment implements Row. + if (r instanceof Increment) { + ((Increment) r).setWriteToWAL(enableWal); + } + } + table.batch(actions); + return null; + } + }); + + privilegedExecutor.execute(new PrivilegedExceptionAction() { + @Override + public Void run() throws Exception { + + List processedIncrements; + if (batchIncrements) { + processedIncrements = coalesceIncrements(incs); + } else { + processedIncrements = incs; + } + + // Only used for unit testing. + if (debugIncrCallback != null) { + debugIncrCallback.onAfterCoalesce(processedIncrements); + } + + for (final Increment i : processedIncrements) { + i.setWriteToWAL(enableWal); + table.increment(i); + } + return null; + } + }); + + txn.commit(); + sinkCounter.addToEventDrainSuccessCount(actions.size()); + } + + /** + * The method getFamilyMap() is no longer available in Hbase 0.96. + * We must use reflection to determine which version we may use. + */ + @VisibleForTesting + static Method reflectLookupGetFamilyMap() { + Method m = null; + String[] methodNames = {"getFamilyMapOfLongs", "getFamilyMap"}; + for (String methodName : methodNames) { + try { + m = Increment.class.getMethod(methodName); + if (m != null && m.getReturnType().equals(Map.class)) { + logger.debug("Using Increment.{} for coalesce", methodName); + break; + } + } catch (NoSuchMethodException e) { + logger.debug("Increment.{} does not exist. Exception follows.", + methodName, e); + } catch (SecurityException e) { + logger.debug("No access to Increment.{}; Exception follows.", + methodName, e); + } + } + if (m == null) { + throw new UnsupportedOperationException( + "Cannot find Increment.getFamilyMap()"); + } + return m; + } + + @SuppressWarnings("unchecked") + private Map> getFamilyMap(Increment inc) { + Preconditions.checkNotNull(refGetFamilyMap, + "Increment.getFamilymap() not found"); + Preconditions.checkNotNull(inc, "Increment required"); + Map> familyMap = null; + try { + Object familyObj = refGetFamilyMap.invoke(inc); + familyMap = (Map>) familyObj; + } catch (IllegalAccessException e) { + logger.warn("Unexpected error calling getFamilyMap()", e); + Throwables.propagate(e); + } catch (InvocationTargetException e) { + logger.warn("Unexpected error calling getFamilyMap()", e); + Throwables.propagate(e); + } + return familyMap; + } + + /** + * Perform "compression" on the given set of increments so that Flume sends + * the minimum possible number of RPC operations to HBase per batch. + * + * @param incs Input: Increment objects to coalesce. + * @return List of new Increment objects after coalescing the unique counts. + */ + private List coalesceIncrements(Iterable incs) { + Preconditions.checkNotNull(incs, "List of Increments must not be null"); + // Aggregate all of the increment row/family/column counts. + // The nested map is keyed like this: {row, family, qualifier} => count. + Map>> counters = + Maps.newTreeMap(Bytes.BYTES_COMPARATOR); + for (Increment inc : incs) { + byte[] row = inc.getRow(); + Map> families = getFamilyMap(inc); + for (Map.Entry> familyEntry : families.entrySet()) { + byte[] family = familyEntry.getKey(); + NavigableMap qualifiers = familyEntry.getValue(); + for (Map.Entry qualifierEntry : qualifiers.entrySet()) { + byte[] qualifier = qualifierEntry.getKey(); + Long count = qualifierEntry.getValue(); + incrementCounter(counters, row, family, qualifier, count); + } + } + } + + // Reconstruct list of Increments per unique row/family/qualifier. + List coalesced = Lists.newLinkedList(); + for (Map.Entry>> rowEntry : + counters.entrySet()) { + byte[] row = rowEntry.getKey(); + Map> families = rowEntry.getValue(); + Increment inc = new Increment(row); + for (Map.Entry> familyEntry : families.entrySet()) { + byte[] family = familyEntry.getKey(); + NavigableMap qualifiers = familyEntry.getValue(); + for (Map.Entry qualifierEntry : qualifiers.entrySet()) { + byte[] qualifier = qualifierEntry.getKey(); + long count = qualifierEntry.getValue(); + inc.addColumn(family, qualifier, count); + } + } + coalesced.add(inc); + } + + return coalesced; + } + + /** + * Helper function for {@link #coalesceIncrements} to increment a counter + * value in the passed data structure. + * + * @param counters Nested data structure containing the counters. + * @param row Row key to increment. + * @param family Column family to increment. + * @param qualifier Column qualifier to increment. + * @param count Amount to increment by. + */ + private void incrementCounter( + Map>> counters, + byte[] row, byte[] family, byte[] qualifier, Long count) { + + Map> families = counters.get(row); + if (families == null) { + families = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); + counters.put(row, families); + } + + NavigableMap qualifiers = families.get(family); + if (qualifiers == null) { + qualifiers = Maps.newTreeMap(Bytes.BYTES_COMPARATOR); + families.put(family, qualifiers); + } + + Long existingValue = qualifiers.get(qualifier); + if (existingValue == null) { + qualifiers.put(qualifier, count); + } else { + qualifiers.put(qualifier, existingValue + count); + } + } + + @VisibleForTesting + @InterfaceAudience.Private + HbaseEventSerializer getSerializer() { + return serializer; + } + + @VisibleForTesting + @InterfaceAudience.Private + interface DebugIncrementsCallback { + public void onAfterCoalesce(Iterable increments); + } +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSinkConfigurationConstants.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSinkConfigurationConstants.java new file mode 100644 index 0000000..5560624 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HBaseSinkConfigurationConstants.java @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import org.apache.hadoop.hbase.HConstants; + +/** + * Constants used for configuration of HBaseSink and AsyncHBaseSink + * + */ +public class HBaseSinkConfigurationConstants { + /** + * The Hbase table which the sink should write to. + */ + public static final String CONFIG_TABLE = "table"; + /** + * The column family which the sink should use. + */ + public static final String CONFIG_COLUMN_FAMILY = "columnFamily"; + /** + * Maximum number of events the sink should take from the channel per + * transaction, if available. + */ + public static final String CONFIG_BATCHSIZE = "batchSize"; + /** + * The fully qualified class name of the serializer the sink should use. + */ + public static final String CONFIG_SERIALIZER = "serializer"; + /** + * Configuration to pass to the serializer. + */ + public static final String CONFIG_SERIALIZER_PREFIX = CONFIG_SERIALIZER + "."; + + public static final String CONFIG_TIMEOUT = "timeout"; + + public static final String CONFIG_ENABLE_WAL = "enableWal"; + + public static final boolean DEFAULT_ENABLE_WAL = true; + + public static final long DEFAULT_TIMEOUT = 60000; + + public static final String CONFIG_KEYTAB = "kerberosKeytab"; + + public static final String CONFIG_PRINCIPAL = "kerberosPrincipal"; + + public static final String ZK_QUORUM = "zookeeperQuorum"; + + public static final String ZK_ZNODE_PARENT = "znodeParent"; + + public static final String DEFAULT_ZK_ZNODE_PARENT = + HConstants.DEFAULT_ZOOKEEPER_ZNODE_PARENT; + + public static final String CONFIG_COALESCE_INCREMENTS = "coalesceIncrements"; + + public static final Boolean DEFAULT_COALESCE_INCREMENTS = false; + + public static final int DEFAULT_MAX_CONSECUTIVE_FAILS = 10; + + public static final String CONFIG_MAX_CONSECUTIVE_FAILS = "maxConsecutiveFails"; + +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HbaseEventSerializer.java new file mode 100644 index 0000000..d4e3f84 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/HbaseEventSerializer.java @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import java.util.List; + +import org.apache.flume.Event; +import org.apache.flume.conf.Configurable; +import org.apache.flume.conf.ConfigurableComponent; +import org.apache.hadoop.hbase.client.Increment; +import org.apache.hadoop.hbase.client.Row; + +/** + * Interface for an event serializer which serializes the headers and body + * of an event to write them to hbase. This is configurable, so any config + * params required should be taken through this. Only the column family is + * passed in. The columns should exist in the table and column family + * specified in the configuration for the HbaseSink. + */ +public interface HbaseEventSerializer extends Configurable, ConfigurableComponent { + /** + * Initialize the event serializer. + * @param event Event to be written to HBase + * @param columnFamily Column family to write to + */ + public void initialize(Event event, byte[] columnFamily); + + /** + * Get the actions that should be written out to hbase as a result of this + * event. This list is written to hbase using the HBase batch API. + * @return List of {@link org.apache.hadoop.hbase.client.Row} which + * are written as such to HBase. + * + * 0.92 increments do not implement Row, so this is not generic. + * + */ + public List getActions(); + + public List getIncrements(); + + /* + * Clean up any state. This will be called when the sink is being stopped. + */ + public void close(); +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/KfkAsyncHbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/KfkAsyncHbaseEventSerializer.java new file mode 100644 index 0000000..126b300 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/KfkAsyncHbaseEventSerializer.java @@ -0,0 +1,155 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.base.Charsets; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.FlumeException; +import org.apache.flume.conf.ComponentConfiguration; +import org.apache.flume.sink.hbase.SimpleHbaseEventSerializer.KeyType; +import org.hbase.async.AtomicIncrementRequest; +import org.hbase.async.PutRequest; + +import java.util.ArrayList; +import java.util.List; + +/** + * A simple serializer to be used with the AsyncHBaseSink + * that returns puts from an event, by writing the event + * body into it. The headers are discarded. It also updates a row in hbase + * which acts as an event counter. + * + * Takes optional parameters:

+ * rowPrefix: The prefix to be used. Default: default

+ * incrementRow The row to increment. Default: incRow

+ * suffix: uuid/random/timestamp.Default: uuid

+ * + * Mandatory parameters:

+ * cf:Column family.

+ * Components that have no defaults and will not be used if absent: + * payloadColumn: Which column to put payload in. If it is not present, + * event data will not be written.

+ * incrementColumn: Which column to increment. If this is absent, it + * means no column is incremented. + */ +public class KfkAsyncHbaseEventSerializer implements AsyncHbaseEventSerializer { + private byte[] table; + private byte[] cf; + private byte[] payload; + private byte[] payloadColumn; + private byte[] incrementColumn; + private String rowPrefix; + private byte[] incrementRow; + private KeyType keyType; + + @Override + public void initialize(byte[] table, byte[] cf) { + this.table = table; + this.cf = cf; + } + + @Override + public List getActions() { + List actions = new ArrayList<>(); + if (payloadColumn != null) { + byte[] rowKey; + try { + /*---------------------------代码修改开始---------------------------------*/ + //解析列字段 + String[] columns = new String(this.payloadColumn).split(","); + //解析flume采集过来的每行的值 + String[] values = new String(this.payload).split(","); + for(int i=0;i < columns.length;i++) { + byte[] colColumn = columns[i].getBytes(); + byte[] colValue = values[i].getBytes(Charsets.UTF_8); + + //数据校验:字段和值是否对应 + if (colColumn.length != colValue.length) break; + + //时间 + String datetime = values[0].toString(); + //用户id + String userid = values[1].toString(); + //根据业务自定义Rowkey + rowKey = SimpleRowKeyGenerator.getKfkRowKey(userid, datetime); + //插入数据 + PutRequest putRequest = new PutRequest(table, rowKey, cf, + colColumn, colValue); + actions.add(putRequest); + /*---------------------------代码修改结束---------------------------------*/ + } + } catch (Exception e) { + throw new FlumeException("Could not get row key!", e); + } + } + return actions; + } + + public List getIncrements() { + List actions = new ArrayList(); + if (incrementColumn != null) { + AtomicIncrementRequest inc = new AtomicIncrementRequest(table, + incrementRow, cf, incrementColumn); + actions.add(inc); + } + return actions; + } + + @Override + public void cleanUp() { + // TODO Auto-generated method stub + + } + + @Override + public void configure(Context context) { + String pCol = context.getString("payloadColumn", "pCol"); + String iCol = context.getString("incrementColumn", "iCol"); + rowPrefix = context.getString("rowPrefix", "default"); + String suffix = context.getString("suffix", "uuid"); + if (pCol != null && !pCol.isEmpty()) { + if (suffix.equals("timestamp")) { + keyType = KeyType.TS; + } else if (suffix.equals("random")) { + keyType = KeyType.RANDOM; + } else if (suffix.equals("nano")) { + keyType = KeyType.TSNANO; + } else { + keyType = KeyType.UUID; + } + payloadColumn = pCol.getBytes(Charsets.UTF_8); + } + if (iCol != null && !iCol.isEmpty()) { + incrementColumn = iCol.getBytes(Charsets.UTF_8); + } + incrementRow = context.getString("incrementRow", "incRow").getBytes(Charsets.UTF_8); + } + + @Override + public void setEvent(Event event) { + this.payload = event.getBody(); + } + + @Override + public void configure(ComponentConfiguration conf) { + // TODO Auto-generated method stub + } + +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/RegexHbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/RegexHbaseEventSerializer.java new file mode 100644 index 0000000..8342d67 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/RegexHbaseEventSerializer.java @@ -0,0 +1,215 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.base.Charsets; +import com.google.common.collect.Lists; +import org.apache.commons.lang.RandomStringUtils; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.FlumeException; +import org.apache.flume.conf.ComponentConfiguration; +import org.apache.hadoop.hbase.client.Increment; +import org.apache.hadoop.hbase.client.Put; +import org.apache.hadoop.hbase.client.Row; + +import java.nio.charset.Charset; +import java.util.Calendar; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * An {@link HbaseEventSerializer} which parses columns based on a supplied + * regular expression and column name list. + *

+ * Note that if the regular expression does not return the correct number of + * groups for a particular event, or it does not correctly match an event, + * the event is silently dropped. + *

+ * Row keys for each event consist of a timestamp concatenated with an + * identifier which enforces uniqueness of keys across flume agents. + *

+ * See static constant variables for configuration options. + */ +public class RegexHbaseEventSerializer implements HbaseEventSerializer { + // Config vars + /** Regular expression used to parse groups from event data. */ + public static final String REGEX_CONFIG = "regex"; + public static final String REGEX_DEFAULT = "(.*)"; + + /** Whether to ignore case when performing regex matches. */ + public static final String IGNORE_CASE_CONFIG = "regexIgnoreCase"; + public static final boolean INGORE_CASE_DEFAULT = false; + + /** Comma separated list of column names to place matching groups in. */ + public static final String COL_NAME_CONFIG = "colNames"; + public static final String COLUMN_NAME_DEFAULT = "payload"; + + /** Index of the row key in matched regex groups */ + public static final String ROW_KEY_INDEX_CONFIG = "rowKeyIndex"; + + /** Placeholder in colNames for row key */ + public static final String ROW_KEY_NAME = "ROW_KEY"; + + /** Whether to deposit event headers into corresponding column qualifiers */ + public static final String DEPOSIT_HEADERS_CONFIG = "depositHeaders"; + public static final boolean DEPOSIT_HEADERS_DEFAULT = false; + + /** What charset to use when serializing into HBase's byte arrays */ + public static final String CHARSET_CONFIG = "charset"; + public static final String CHARSET_DEFAULT = "UTF-8"; + + /* This is a nonce used in HBase row-keys, such that the same row-key + * never gets written more than once from within this JVM. */ + protected static final AtomicInteger nonce = new AtomicInteger(0); + protected static String randomKey = RandomStringUtils.randomAlphanumeric(10); + + protected byte[] cf; + private byte[] payload; + private List colNames = Lists.newArrayList(); + private Map headers; + private boolean regexIgnoreCase; + private boolean depositHeaders; + private Pattern inputPattern; + private Charset charset; + private int rowKeyIndex; + + @Override + public void configure(Context context) { + String regex = context.getString(REGEX_CONFIG, REGEX_DEFAULT); + regexIgnoreCase = context.getBoolean(IGNORE_CASE_CONFIG, + INGORE_CASE_DEFAULT); + depositHeaders = context.getBoolean(DEPOSIT_HEADERS_CONFIG, + DEPOSIT_HEADERS_DEFAULT); + inputPattern = Pattern.compile(regex, Pattern.DOTALL + + (regexIgnoreCase ? Pattern.CASE_INSENSITIVE : 0)); + charset = Charset.forName(context.getString(CHARSET_CONFIG, + CHARSET_DEFAULT)); + + String colNameStr = context.getString(COL_NAME_CONFIG, COLUMN_NAME_DEFAULT); + String[] columnNames = colNameStr.split(","); + for (String s : columnNames) { + colNames.add(s.getBytes(charset)); + } + + //Rowkey is optional, default is -1 + rowKeyIndex = context.getInteger(ROW_KEY_INDEX_CONFIG, -1); + //if row key is being used, make sure it is specified correct + if (rowKeyIndex >= 0) { + if (rowKeyIndex >= columnNames.length) { + throw new IllegalArgumentException(ROW_KEY_INDEX_CONFIG + " must be " + + "less than num columns " + columnNames.length); + } + if (!ROW_KEY_NAME.equalsIgnoreCase(columnNames[rowKeyIndex])) { + throw new IllegalArgumentException("Column at " + rowKeyIndex + " must be " + + ROW_KEY_NAME + " and is " + columnNames[rowKeyIndex]); + } + } + } + + @Override + public void configure(ComponentConfiguration conf) { + } + + @Override + public void initialize(Event event, byte[] columnFamily) { + this.headers = event.getHeaders(); + this.payload = event.getBody(); + this.cf = columnFamily; + } + + /** + * Returns a row-key with the following format: + * [time in millis]-[random key]-[nonce] + */ + protected byte[] getRowKey(Calendar cal) { + /* NOTE: This key generation strategy has the following properties: + * + * 1) Within a single JVM, the same row key will never be duplicated. + * 2) Amongst any two JVM's operating at different time periods (according + * to their respective clocks), the same row key will never be + * duplicated. + * 3) Amongst any two JVM's operating concurrently (according to their + * respective clocks), the odds of duplicating a row-key are non-zero + * but infinitesimal. This would require simultaneous collision in (a) + * the timestamp (b) the respective nonce and (c) the random string. + * The string is necessary since (a) and (b) could collide if a fleet + * of Flume agents are restarted in tandem. + * + * Row-key uniqueness is important because conflicting row-keys will cause + * data loss. */ + String rowKey = String.format("%s-%s-%s", cal.getTimeInMillis(), + randomKey, nonce.getAndIncrement()); + return rowKey.getBytes(charset); + } + + protected byte[] getRowKey() { + return getRowKey(Calendar.getInstance()); + } + + @Override + public List getActions() throws FlumeException { + List actions = Lists.newArrayList(); + byte[] rowKey; + Matcher m = inputPattern.matcher(new String(payload, charset)); + if (!m.matches()) { + return Lists.newArrayList(); + } + + if (m.groupCount() != colNames.size()) { + return Lists.newArrayList(); + } + + try { + if (rowKeyIndex < 0) { + rowKey = getRowKey(); + } else { + rowKey = m.group(rowKeyIndex + 1).getBytes(Charsets.UTF_8); + } + Put put = new Put(rowKey); + + for (int i = 0; i < colNames.size(); i++) { + if (i != rowKeyIndex) { + put.add(cf, colNames.get(i), m.group(i + 1).getBytes(Charsets.UTF_8)); + } + } + if (depositHeaders) { + for (Map.Entry entry : headers.entrySet()) { + put.add(cf, entry.getKey().getBytes(charset), entry.getValue().getBytes(charset)); + } + } + actions.add(put); + } catch (Exception e) { + throw new FlumeException("Could not get row key!", e); + } + return actions; + } + + @Override + public List getIncrements() { + return Lists.newArrayList(); + } + + @Override + public void close() { + } +} \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer.java new file mode 100644 index 0000000..3f442e8 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer.java @@ -0,0 +1,148 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.base.Charsets; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.FlumeException; +import org.apache.flume.conf.ComponentConfiguration; +import org.apache.flume.sink.hbase.SimpleHbaseEventSerializer.KeyType; +import org.hbase.async.AtomicIncrementRequest; +import org.hbase.async.PutRequest; + +import java.util.ArrayList; +import java.util.List; + +/** + * A simple serializer to be used with the AsyncHBaseSink + * that returns puts from an event, by writing the event + * body into it. The headers are discarded. It also updates a row in hbase + * which acts as an event counter. + * + * Takes optional parameters:

+ * rowPrefix: The prefix to be used. Default: default

+ * incrementRow The row to increment. Default: incRow

+ * suffix: uuid/random/timestamp.Default: uuid

+ * + * Mandatory parameters:

+ * cf:Column family.

+ * Components that have no defaults and will not be used if absent: + * payloadColumn: Which column to put payload in. If it is not present, + * event data will not be written.

+ * incrementColumn: Which column to increment. If this is absent, it + * means no column is incremented. + */ +public class SimpleAsyncHbaseEventSerializer implements AsyncHbaseEventSerializer { + private byte[] table; + private byte[] cf; + private byte[] payload; + private byte[] payloadColumn; + private byte[] incrementColumn; + private String rowPrefix; + private byte[] incrementRow; + private KeyType keyType; + + @Override + public void initialize(byte[] table, byte[] cf) { + this.table = table; + this.cf = cf; + } + + @Override + public List getActions() { + List actions = new ArrayList(); + if (payloadColumn != null) { + byte[] rowKey; + try { + switch (keyType) { + case TS: + rowKey = SimpleRowKeyGenerator.getTimestampKey(rowPrefix); + break; + case TSNANO: + rowKey = SimpleRowKeyGenerator.getNanoTimestampKey(rowPrefix); + break; + case RANDOM: + rowKey = SimpleRowKeyGenerator.getRandomKey(rowPrefix); + break; + default: + rowKey = SimpleRowKeyGenerator.getUUIDKey(rowPrefix); + break; + } + PutRequest putRequest = new PutRequest(table, rowKey, cf, + payloadColumn, payload); + actions.add(putRequest); + } catch (Exception e) { + throw new FlumeException("Could not get row key!", e); + } + } + return actions; + } + + public List getIncrements() { + List actions = new ArrayList(); + if (incrementColumn != null) { + AtomicIncrementRequest inc = new AtomicIncrementRequest(table, + incrementRow, cf, incrementColumn); + actions.add(inc); + } + return actions; + } + + @Override + public void cleanUp() { + // TODO Auto-generated method stub + + } + + @Override + public void configure(Context context) { + String pCol = context.getString("payloadColumn", "pCol"); + String iCol = context.getString("incrementColumn", "iCol"); + rowPrefix = context.getString("rowPrefix", "default"); + String suffix = context.getString("suffix", "uuid"); + if (pCol != null && !pCol.isEmpty()) { + if (suffix.equals("timestamp")) { + keyType = KeyType.TS; + } else if (suffix.equals("random")) { + keyType = KeyType.RANDOM; + } else if (suffix.equals("nano")) { + keyType = KeyType.TSNANO; + } else { + keyType = KeyType.UUID; + } + payloadColumn = pCol.getBytes(Charsets.UTF_8); + } + if (iCol != null && !iCol.isEmpty()) { + incrementColumn = iCol.getBytes(Charsets.UTF_8); + } + incrementRow = context.getString("incrementRow", "incRow").getBytes(Charsets.UTF_8); + } + + @Override + public void setEvent(Event event) { + this.payload = event.getBody(); + } + + @Override + public void configure(ComponentConfiguration conf) { + // TODO Auto-generated method stub + } + +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer.java new file mode 100644 index 0000000..dc89fd7 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer.java @@ -0,0 +1,146 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.flume.sink.hbase; + +import com.google.common.base.Charsets; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.FlumeException; +import org.apache.flume.conf.ComponentConfiguration; +import org.apache.hadoop.hbase.client.Increment; +import org.apache.hadoop.hbase.client.Put; +import org.apache.hadoop.hbase.client.Row; + +import java.util.LinkedList; +import java.util.List; + +/** + * A simple serializer that returns puts from an event, by writing the event + * body into it. The headers are discarded. It also updates a row in hbase + * which acts as an event counter. + *

Takes optional parameters:

+ * rowPrefix: The prefix to be used. Default: default

+ * incrementRow The row to increment. Default: incRow

+ * suffix: uuid/random/timestamp.Default: uuid

+ *

Mandatory parameters:

+ * cf:Column family.

+ * Components that have no defaults and will not be used if null: + * payloadColumn: Which column to put payload in. If it is null, + * event data will not be written.

+ * incColumn: Which column to increment. Null means no column is + * incremented. + */ +public class SimpleHbaseEventSerializer implements HbaseEventSerializer { + private String rowPrefix; + private byte[] incrementRow; + private byte[] cf; + private byte[] plCol; + private byte[] incCol; + private KeyType keyType; + private byte[] payload; + + public SimpleHbaseEventSerializer() { + } + + @Override + public void configure(Context context) { + rowPrefix = context.getString("rowPrefix", "default"); + incrementRow = + context.getString("incrementRow", "incRow").getBytes(Charsets.UTF_8); + String suffix = context.getString("suffix", "uuid"); + + String payloadColumn = context.getString("payloadColumn", "pCol"); + String incColumn = context.getString("incrementColumn", "iCol"); + if (payloadColumn != null && !payloadColumn.isEmpty()) { + if (suffix.equals("timestamp")) { + keyType = KeyType.TS; + } else if (suffix.equals("random")) { + keyType = KeyType.RANDOM; + } else if (suffix.equals("nano")) { + keyType = KeyType.TSNANO; + } else { + keyType = KeyType.UUID; + } + plCol = payloadColumn.getBytes(Charsets.UTF_8); + } + if (incColumn != null && !incColumn.isEmpty()) { + incCol = incColumn.getBytes(Charsets.UTF_8); + } + } + + @Override + public void configure(ComponentConfiguration conf) { + } + + @Override + public void initialize(Event event, byte[] cf) { + this.payload = event.getBody(); + this.cf = cf; + } + + @Override + public List getActions() throws FlumeException { + List actions = new LinkedList(); + if (plCol != null) { + byte[] rowKey; + try { + if (keyType == KeyType.TS) { + rowKey = SimpleRowKeyGenerator.getTimestampKey(rowPrefix); + } else if (keyType == KeyType.RANDOM) { + rowKey = SimpleRowKeyGenerator.getRandomKey(rowPrefix); + } else if (keyType == KeyType.TSNANO) { + rowKey = SimpleRowKeyGenerator.getNanoTimestampKey(rowPrefix); + } else { + rowKey = SimpleRowKeyGenerator.getUUIDKey(rowPrefix); + } + Put put = new Put(rowKey); + put.add(cf, plCol, payload); + actions.add(put); + } catch (Exception e) { + throw new FlumeException("Could not get row key!", e); + } + + } + return actions; + } + + @Override + public List getIncrements() { + List incs = new LinkedList(); + if (incCol != null) { + Increment inc = new Increment(incrementRow); + inc.addColumn(cf, incCol, 1); + incs.add(inc); + } + return incs; + } + + @Override + public void close() { + } + + public enum KeyType { + UUID, + RANDOM, + TS, + TSNANO; + } + +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleRowKeyGenerator.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleRowKeyGenerator.java new file mode 100644 index 0000000..0cabd2c --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/main/java/org/apache/flume/sink/hbase/SimpleRowKeyGenerator.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import java.io.UnsupportedEncodingException; +import java.util.Random; +import java.util.UUID; + +/** + * Utility class for users to generate their own keys. Any key can be used, + * this is just a utility that provides a set of simple keys. + */ +public class SimpleRowKeyGenerator { + + public static byte[] getUUIDKey(String prefix) throws UnsupportedEncodingException { + return (prefix + UUID.randomUUID().toString()).getBytes("UTF8"); + } + + public static byte[] getRandomKey(String prefix) throws UnsupportedEncodingException { + return (prefix + String.valueOf(new Random().nextLong())).getBytes("UTF8"); + } + + public static byte[] getTimestampKey(String prefix) throws UnsupportedEncodingException { + return (prefix + String.valueOf(System.currentTimeMillis())).getBytes("UTF8"); + } + + public static byte[] getNanoTimestampKey(String prefix) throws UnsupportedEncodingException { + return (prefix + String.valueOf(System.nanoTime())).getBytes("UTF8"); + } + public static byte[] getKfkRowKey(String userid,String datetime)throws UnsupportedEncodingException { + return (userid + datetime + String.valueOf(System.currentTimeMillis())).getBytes("UTF8"); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementAsyncHBaseSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementAsyncHBaseSerializer.java new file mode 100644 index 0000000..9a2be5a --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementAsyncHBaseSerializer.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.conf.ComponentConfiguration; +import org.hbase.async.AtomicIncrementRequest; +import org.hbase.async.PutRequest; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * An AsyncHBaseEventSerializer implementation that increments a configured + * column for the row whose row key is the event's body bytes. + */ +public class IncrementAsyncHBaseSerializer implements AsyncHbaseEventSerializer { + private byte[] table; + private byte[] cf; + private byte[] column; + private Event currentEvent; + + @Override + public void initialize(byte[] table, byte[] cf) { + this.table = table; + this.cf = cf; + } + + @Override + public void setEvent(Event event) { + this.currentEvent = event; + } + + @Override + public List getActions() { + return Collections.emptyList(); + } + + @Override + public List getIncrements() { + List incrs = new ArrayList(); + AtomicIncrementRequest incr = new AtomicIncrementRequest(table, + currentEvent.getBody(), cf, column, 1); + incrs.add(incr); + return incrs; + } + + @Override + public void cleanUp() { + } + + @Override + public void configure(Context context) { + column = context.getString("column", "col").getBytes(); + } + + @Override + public void configure(ComponentConfiguration conf) { + } +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementHBaseSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementHBaseSerializer.java new file mode 100644 index 0000000..b4343eb --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/IncrementHBaseSerializer.java @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Charsets; +import com.google.common.collect.Lists; +import java.util.Collections; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.conf.ComponentConfiguration; +import org.apache.hadoop.hbase.client.Increment; +import org.apache.hadoop.hbase.client.Row; + +import java.util.List; + +/** + * For Increment-related unit tests. + */ +class IncrementHBaseSerializer implements HbaseEventSerializer, BatchAware { + private Event event; + private byte[] family; + private int numBatchesStarted = 0; + + @Override public void configure(Context context) { } + @Override public void configure(ComponentConfiguration conf) { } + @Override public void close() { } + + @Override + public void initialize(Event event, byte[] columnFamily) { + this.event = event; + this.family = columnFamily; + } + + // This class only creates Increments. + @Override + public List getActions() { + return Collections.emptyList(); + } + + // Treat each Event as a String, i,e, "row:qualifier". + @Override + public List getIncrements() { + List increments = Lists.newArrayList(); + String body = new String(event.getBody(), Charsets.UTF_8); + String[] pieces = body.split(":"); + String row = pieces[0]; + String qualifier = pieces[1]; + Increment inc = new Increment(row.getBytes(Charsets.UTF_8)); + inc.addColumn(family, qualifier.getBytes(Charsets.UTF_8), 1L); + increments.add(inc); + return increments; + } + + @Override + public void onBatchStart() { + numBatchesStarted++; + } + + @VisibleForTesting + public int getNumBatchesStarted() { + return numBatchesStarted; + } +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/MockSimpleHbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/MockSimpleHbaseEventSerializer.java new file mode 100644 index 0000000..9b2a850 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/MockSimpleHbaseEventSerializer.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.flume.sink.hbase; + +import java.util.List; + +import org.apache.flume.FlumeException; +import org.apache.hadoop.hbase.client.Row; + +class MockSimpleHbaseEventSerializer extends SimpleHbaseEventSerializer { + + public static boolean throwException = false; + + @Override + public List getActions() throws FlumeException { + if (throwException) { + throw new FlumeException("Exception for testing"); + } + return super.getActions(); + } +} \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestAsyncHBaseSink.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestAsyncHBaseSink.java new file mode 100644 index 0000000..f8faa1e --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestAsyncHBaseSink.java @@ -0,0 +1,618 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.flume.sink.hbase; + +import java.io.IOException; +import java.lang.management.ManagementFactory; +import java.lang.management.OperatingSystemMXBean; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import org.apache.flume.Channel; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.FlumeException; +import org.apache.flume.Transaction; +import org.apache.flume.Sink.Status; +import org.apache.flume.channel.MemoryChannel; +import org.apache.flume.conf.Configurables; +import org.apache.flume.event.EventBuilder; +import org.apache.hadoop.hbase.HBaseTestingUtility; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.ResultScanner; +import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.zookeeper.ZKConfig; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import com.google.common.primitives.Longs; +import com.sun.management.UnixOperatingSystemMXBean; + +import org.junit.After; + +public class TestAsyncHBaseSink { + private static HBaseTestingUtility testUtility = new HBaseTestingUtility(); + + private static String tableName = "TestHbaseSink"; + private static String columnFamily = "TestColumnFamily"; + private static String inColumn = "iCol"; + private static String plCol = "pCol"; + private static Context ctx = new Context(); + private static String valBase = "testing hbase sink: jham"; + private boolean deleteTable = true; + private static OperatingSystemMXBean os; + + + @BeforeClass + public static void setUp() throws Exception { + testUtility.startMiniCluster(); + + Map ctxMap = new HashMap(); + ctxMap.put("table", tableName); + ctxMap.put("columnFamily", columnFamily); + ctxMap.put("serializer", + "org.apache.flume.sink.hbase.SimpleAsyncHbaseEventSerializer"); + ctxMap.put("serializer.payloadColumn", plCol); + ctxMap.put("serializer.incrementColumn", inColumn); + ctxMap.put("keep-alive", "0"); + ctxMap.put("timeout", "10000"); + ctx.putAll(ctxMap); + + os = ManagementFactory.getOperatingSystemMXBean(); + } + + @AfterClass + public static void tearDown() throws Exception { + testUtility.shutdownMiniCluster(); + } + + @After + public void tearDownTest() throws Exception { + if (deleteTable) { + testUtility.deleteTable(tableName.getBytes()); + } + } + + @Test + public void testOneEventWithDefaults() throws Exception { + Map ctxMap = new HashMap(); + ctxMap.put("table", tableName); + ctxMap.put("columnFamily", columnFamily); + ctxMap.put("serializer", + "org.apache.flume.sink.hbase.SimpleAsyncHbaseEventSerializer"); + ctxMap.put("keep-alive", "0"); + ctxMap.put("timeout", "10000"); + Context tmpctx = new Context(); + tmpctx.putAll(ctxMap); + + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration()); + Configurables.configure(sink, tmpctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, tmpctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + Event e = EventBuilder.withBody( + Bytes.toBytes(valBase)); + channel.put(e); + tx.commit(); + tx.close(); + Assert.assertFalse(sink.isConfNull()); + sink.process(); + sink.stop(); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + byte[][] results = getResults(table, 1); + byte[] out = results[0]; + Assert.assertArrayEquals(e.getBody(), out); + out = results[1]; + Assert.assertArrayEquals(Longs.toByteArray(1), out); + } + + @Test + public void testOneEvent() throws Exception { + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration()); + Configurables.configure(sink, ctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + Event e = EventBuilder.withBody( + Bytes.toBytes(valBase)); + channel.put(e); + tx.commit(); + tx.close(); + Assert.assertFalse(sink.isConfNull()); + sink.process(); + sink.stop(); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + byte[][] results = getResults(table, 1); + byte[] out = results[0]; + Assert.assertArrayEquals(e.getBody(), out); + out = results[1]; + Assert.assertArrayEquals(Longs.toByteArray(1), out); + } + + @Test + public void testThreeEvents() throws Exception { + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration()); + Configurables.configure(sink, ctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + Assert.assertFalse(sink.isConfNull()); + sink.process(); + sink.stop(); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + byte[][] results = getResults(table, 3); + byte[] out; + int found = 0; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(3, found); + out = results[3]; + Assert.assertArrayEquals(Longs.toByteArray(3), out); + } + + //This will without FLUME-1842's timeout fix - but with FLUME-1842's testing + //oriented changes to the callback classes and using single threaded executor + //for tests. + @Test (expected = EventDeliveryException.class) + public void testTimeOut() throws Exception { + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration(), true, false); + Configurables.configure(sink, ctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + channel.start(); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + Assert.assertFalse(sink.isConfNull()); + sink.process(); + Assert.fail(); + } + + @Test + public void testMultipleBatches() throws Exception { + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + ctx.put("batchSize", "2"); + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration()); + Configurables.configure(sink, ctx); + //Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + int count = 0; + Status status = Status.READY; + while (status != Status.BACKOFF) { + count++; + status = sink.process(); + } + Assert.assertFalse(sink.isConfNull()); + sink.stop(); + Assert.assertEquals(2, count); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + byte[][] results = getResults(table, 3); + byte[] out; + int found = 0; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(3, found); + out = results[3]; + Assert.assertArrayEquals(Longs.toByteArray(3), out); + } + + @Test + public void testMultipleBatchesBatchIncrementsWithCoalescing() throws Exception { + doTestMultipleBatchesBatchIncrements(true); + } + + @Test + public void testMultipleBatchesBatchIncrementsNoCoalescing() throws Exception { + doTestMultipleBatchesBatchIncrements(false); + } + + public void doTestMultipleBatchesBatchIncrements(boolean coalesce) throws Exception { + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration(), false, true); + if (coalesce) { + ctx.put(HBaseSinkConfigurationConstants.CONFIG_COALESCE_INCREMENTS, "true"); + } + ctx.put("batchSize", "2"); + ctx.put("serializer", IncrementAsyncHBaseSerializer.class.getName()); + ctx.put("serializer.column", "test"); + Configurables.configure(sink, ctx); + //Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + // Restore the original serializer + ctx.put("serializer", SimpleAsyncHbaseEventSerializer.class.getName()); + //Restore the no coalescing behavior + ctx.put(HBaseSinkConfigurationConstants.CONFIG_COALESCE_INCREMENTS, + "false"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 3; j++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + } + tx.commit(); + tx.close(); + int count = 0; + Status status = Status.READY; + while (status != Status.BACKOFF) { + count++; + status = sink.process(); + } + Assert.assertFalse(sink.isConfNull()); + sink.stop(); + Assert.assertEquals(7, count); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + Scan scan = new Scan(); + scan.addColumn(columnFamily.getBytes(), "test".getBytes()); + scan.setStartRow(Bytes.toBytes(valBase)); + ResultScanner rs = table.getScanner(scan); + int i = 0; + try { + for (Result r = rs.next(); r != null; r = rs.next()) { + byte[] out = r.getValue(columnFamily.getBytes(), "test".getBytes()); + Assert.assertArrayEquals(Longs.toByteArray(3), out); + Assert.assertTrue(new String(r.getRow()).startsWith(valBase)); + i++; + } + } finally { + rs.close(); + } + Assert.assertEquals(4, i); + if (coalesce) { + Assert.assertEquals(8, sink.getTotalCallbacksReceived()); + } else { + Assert.assertEquals(12, sink.getTotalCallbacksReceived()); + } + } + + @Test + public void testWithoutConfigurationObject() throws Exception { + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + ctx.put("batchSize", "2"); + ctx.put(HBaseSinkConfigurationConstants.ZK_QUORUM, + ZKConfig.getZKQuorumServersString(testUtility.getConfiguration())); + ctx.put(HBaseSinkConfigurationConstants.ZK_ZNODE_PARENT, + testUtility.getConfiguration().get(HConstants.ZOOKEEPER_ZNODE_PARENT)); + AsyncHBaseSink sink = new AsyncHBaseSink(); + Configurables.configure(sink, ctx); + // Reset context to values usable by other tests. + ctx.put(HBaseSinkConfigurationConstants.ZK_QUORUM, null); + ctx.put(HBaseSinkConfigurationConstants.ZK_ZNODE_PARENT, null); + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + int count = 0; + Status status = Status.READY; + while (status != Status.BACKOFF) { + count++; + status = sink.process(); + } + /* + * Make sure that the configuration was picked up from the context itself + * and not from a configuration object which was created by the sink. + */ + Assert.assertTrue(sink.isConfNull()); + sink.stop(); + Assert.assertEquals(2, count); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + byte[][] results = getResults(table, 3); + byte[] out; + int found = 0; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(3, found); + out = results[3]; + Assert.assertArrayEquals(Longs.toByteArray(3), out); + } + + @Test(expected = FlumeException.class) + public void testMissingTable() throws Exception { + deleteTable = false; + ctx.put("batchSize", "2"); + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration()); + Configurables.configure(sink, ctx); + //Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + sink.process(); + Assert.assertFalse(sink.isConfNull()); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + byte[][] results = getResults(table, 2); + byte[] out; + int found = 0; + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(2, found); + out = results[2]; + Assert.assertArrayEquals(Longs.toByteArray(2), out); + sink.process(); + sink.stop(); + } + + // We only have support for getting File Descriptor count for Unix from the JDK + private long getOpenFileDescriptorCount() { + if (os instanceof UnixOperatingSystemMXBean) { + return ((UnixOperatingSystemMXBean) os).getOpenFileDescriptorCount(); + } else { + return -1; + } + } + + /* + * Before the fix for FLUME-2738, consistently File Descriptors were leaked with at least + * > 10 FDs being leaked for every single shutdown-reinitialize routine + * If there is a leak, then the increase in FDs should be way higher than + * 50 and if there is no leak, there should not be any substantial increase in + * FDs. This is over a set of 10 shutdown-reinitialize runs + * This test makes sure that there is no File Descriptor leak, by continuously + * failing transactions and shutting down and reinitializing the client every time + * and this test will fail if a leak is detected + */ + @Test + public void testFDLeakOnShutdown() throws Exception { + if (getOpenFileDescriptorCount() < 0) { + return; + } + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = true; + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration(), + true, false); + ctx.put("maxConsecutiveFails", "1"); + Configurables.configure(sink, ctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + channel.start(); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + Assert.assertFalse(sink.isConfNull()); + long initialFDCount = getOpenFileDescriptorCount(); + + // Since the isTimeOutTest is set to true, transaction will fail + // with EventDeliveryException + for (int i = 0; i < 10; i++) { + try { + sink.process(); + } catch (EventDeliveryException ex) { + } + } + long increaseInFD = getOpenFileDescriptorCount() - initialFDCount; + Assert.assertTrue("File Descriptor leak detected. FDs have increased by " + + increaseInFD + " from an initial FD count of " + initialFDCount, + increaseInFD < 50); + } + + /** + * This test must run last - it shuts down the minicluster :D + * + * @throws Exception + */ + @Ignore("For dev builds only:" + + "This test takes too long, and this has to be run after all other" + + "tests, since it shuts down the minicluster. " + + "Comment out all other tests" + + "and uncomment this annotation to run this test.") + @Test(expected = EventDeliveryException.class) + public void testHBaseFailure() throws Exception { + ctx.put("batchSize", "2"); + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + deleteTable = false; + AsyncHBaseSink sink = new AsyncHBaseSink(testUtility.getConfiguration()); + Configurables.configure(sink, ctx); + //Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + sink.process(); + Assert.assertFalse(sink.isConfNull()); + HTable table = new HTable(testUtility.getConfiguration(), tableName); + byte[][] results = getResults(table, 2); + byte[] out; + int found = 0; + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(2, found); + out = results[2]; + Assert.assertArrayEquals(Longs.toByteArray(2), out); + testUtility.shutdownMiniCluster(); + sink.process(); + sink.stop(); + } + + /** + * Makes Hbase scans to get rows in the payload column and increment column + * in the table given. Expensive, so tread lightly. + * Calling this function multiple times for the same result set is a bad + * idea. Cache the result set once it is returned by this function. + * + * @param table + * @param numEvents Number of events inserted into the table + * @return + * @throws IOException + */ + private byte[][] getResults(HTable table, int numEvents) throws IOException { + byte[][] results = new byte[numEvents + 1][]; + Scan scan = new Scan(); + scan.addColumn(columnFamily.getBytes(), plCol.getBytes()); + scan.setStartRow(Bytes.toBytes("default")); + ResultScanner rs = table.getScanner(scan); + byte[] out = null; + int i = 0; + try { + for (Result r = rs.next(); r != null; r = rs.next()) { + out = r.getValue(columnFamily.getBytes(), plCol.getBytes()); + + if (i >= results.length - 1) { + rs.close(); + throw new FlumeException("More results than expected in the table." + + "Expected = " + numEvents + ". Found = " + i); + } + results[i++] = out; + System.out.println(out); + } + } finally { + rs.close(); + } + + Assert.assertEquals(i, results.length - 1); + scan = new Scan(); + scan.addColumn(columnFamily.getBytes(), inColumn.getBytes()); + scan.setStartRow(Bytes.toBytes("incRow")); + rs = table.getScanner(scan); + out = null; + try { + for (Result r = rs.next(); r != null; r = rs.next()) { + out = r.getValue(columnFamily.getBytes(), inColumn.getBytes()); + results[i++] = out; + System.out.println(out); + } + } finally { + rs.close(); + } + return results; + } +} + diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSink.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSink.java new file mode 100644 index 0000000..217913b --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSink.java @@ -0,0 +1,744 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.base.Charsets; +import com.google.common.base.Throwables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.primitives.Longs; +import org.apache.flume.Channel; +import org.apache.flume.ChannelException; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.FlumeException; +import org.apache.flume.Sink.Status; +import org.apache.flume.Transaction; +import org.apache.flume.channel.MemoryChannel; +import org.apache.flume.conf.Configurables; +import org.apache.flume.event.EventBuilder; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HBaseTestingUtility; +import org.apache.hadoop.hbase.HConstants; +import org.apache.hadoop.hbase.client.HTable; +import org.apache.hadoop.hbase.client.Increment; +import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.client.ResultScanner; +import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.zookeeper.ZKConfig; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.NavigableMap; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.spy; + +public class TestHBaseSink { + private static final Logger logger = + LoggerFactory.getLogger(TestHBaseSink.class); + + private static final HBaseTestingUtility testUtility = new HBaseTestingUtility(); + private static final String tableName = "TestHbaseSink"; + private static final String columnFamily = "TestColumnFamily"; + private static final String inColumn = "iCol"; + private static final String plCol = "pCol"; + private static final String valBase = "testing hbase sink: jham"; + + private Configuration conf; + private Context ctx; + + @BeforeClass + public static void setUpOnce() throws Exception { + testUtility.startMiniCluster(); + } + + @AfterClass + public static void tearDownOnce() throws Exception { + testUtility.shutdownMiniCluster(); + } + + /** + * Most common context setup for unit tests using + * {@link SimpleHbaseEventSerializer}. + */ + @Before + public void setUp() throws IOException { + conf = new Configuration(testUtility.getConfiguration()); + ctx = new Context(); + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + } + + @After + public void tearDown() throws IOException { + testUtility.deleteTable(tableName.getBytes()); + } + + /** + * Set up {@link Context} for use with {@link SimpleHbaseEventSerializer}. + */ + private void initContextForSimpleHbaseEventSerializer() { + ctx = new Context(); + ctx.put("table", tableName); + ctx.put("columnFamily", columnFamily); + ctx.put("serializer", SimpleHbaseEventSerializer.class.getName()); + ctx.put("serializer.payloadColumn", plCol); + ctx.put("serializer.incrementColumn", inColumn); + } + + /** + * Set up {@link Context} for use with {@link IncrementHBaseSerializer}. + */ + private void initContextForIncrementHBaseSerializer() { + ctx = new Context(); + ctx.put("table", tableName); + ctx.put("columnFamily", columnFamily); + ctx.put("serializer", IncrementHBaseSerializer.class.getName()); + } + + @Test + public void testOneEventWithDefaults() throws Exception { + //Create a context without setting increment column and payload Column + ctx = new Context(); + ctx.put("table", tableName); + ctx.put("columnFamily", columnFamily); + ctx.put("serializer", SimpleHbaseEventSerializer.class.getName()); + + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + Event e = EventBuilder.withBody(Bytes.toBytes(valBase)); + channel.put(e); + tx.commit(); + tx.close(); + + sink.process(); + sink.stop(); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 1); + byte[] out = results[0]; + Assert.assertArrayEquals(e.getBody(), out); + out = results[1]; + Assert.assertArrayEquals(Longs.toByteArray(1), out); + } + + @Test + public void testOneEvent() throws Exception { + initContextForSimpleHbaseEventSerializer(); + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + Event e = EventBuilder.withBody( + Bytes.toBytes(valBase)); + channel.put(e); + tx.commit(); + tx.close(); + + sink.process(); + sink.stop(); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 1); + byte[] out = results[0]; + Assert.assertArrayEquals(e.getBody(), out); + out = results[1]; + Assert.assertArrayEquals(Longs.toByteArray(1), out); + } + + @Test + public void testThreeEvents() throws Exception { + initContextForSimpleHbaseEventSerializer(); + ctx.put("batchSize", "3"); + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + sink.process(); + sink.stop(); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 3); + byte[] out; + int found = 0; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(3, found); + out = results[3]; + Assert.assertArrayEquals(Longs.toByteArray(3), out); + } + + @Test + public void testMultipleBatches() throws Exception { + initContextForSimpleHbaseEventSerializer(); + ctx.put("batchSize", "2"); + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + //Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + int count = 0; + while (sink.process() != Status.BACKOFF) { + count++; + } + sink.stop(); + Assert.assertEquals(2, count); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 3); + byte[] out; + int found = 0; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(3, found); + out = results[3]; + Assert.assertArrayEquals(Longs.toByteArray(3), out); + } + + @Test(expected = FlumeException.class) + public void testMissingTable() throws Exception { + logger.info("Running testMissingTable()"); + initContextForSimpleHbaseEventSerializer(); + + // setUp() will create the table, so we delete it. + logger.info("Deleting table {}", tableName); + testUtility.deleteTable(tableName.getBytes()); + + ctx.put("batchSize", "2"); + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + //Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + + logger.info("Writing data into channel"); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + + logger.info("Starting sink and processing events"); + try { + logger.info("Calling sink.start()"); + sink.start(); // This method will throw. + + // We never get here, but we log in case the behavior changes. + logger.error("Unexpected error: Calling sink.process()"); + sink.process(); + logger.error("Unexpected error: Calling sink.stop()"); + sink.stop(); + } finally { + // Re-create the table so tearDown() doesn't throw. + testUtility.createTable(tableName.getBytes(), columnFamily.getBytes()); + } + + // FIXME: The test should never get here, the below code doesn't run. + Assert.fail(); + + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 2); + byte[] out; + int found = 0; + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(2, found); + out = results[2]; + Assert.assertArrayEquals(Longs.toByteArray(2), out); + sink.process(); + } + + // TODO: Move this test to a different class and run it stand-alone. + + /** + * This test must run last - it shuts down the minicluster :D + * + * @throws Exception + */ + @Ignore("For dev builds only:" + + "This test takes too long, and this has to be run after all other" + + "tests, since it shuts down the minicluster. " + + "Comment out all other tests" + + "and uncomment this annotation to run this test.") + @Test(expected = EventDeliveryException.class) + public void testHBaseFailure() throws Exception { + initContextForSimpleHbaseEventSerializer(); + ctx.put("batchSize", "2"); + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + //Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + sink.process(); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 2); + byte[] out; + int found = 0; + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(2, found); + out = results[2]; + Assert.assertArrayEquals(Longs.toByteArray(2), out); + testUtility.shutdownMiniCluster(); + sink.process(); + sink.stop(); + } + + /** + * Makes Hbase scans to get rows in the payload column and increment column + * in the table given. Expensive, so tread lightly. + * Calling this function multiple times for the same result set is a bad + * idea. Cache the result set once it is returned by this function. + * + * @param table + * @param numEvents Number of events inserted into the table + * @return + * @throws IOException + */ + private byte[][] getResults(HTable table, int numEvents) throws IOException { + byte[][] results = new byte[numEvents + 1][]; + Scan scan = new Scan(); + scan.addColumn(columnFamily.getBytes(), plCol.getBytes()); + scan.setStartRow(Bytes.toBytes("default")); + ResultScanner rs = table.getScanner(scan); + byte[] out = null; + int i = 0; + try { + for (Result r = rs.next(); r != null; r = rs.next()) { + out = r.getValue(columnFamily.getBytes(), plCol.getBytes()); + + if (i >= results.length - 1) { + rs.close(); + throw new FlumeException("More results than expected in the table." + + "Expected = " + numEvents + ". Found = " + i); + } + results[i++] = out; + System.out.println(out); + } + } finally { + rs.close(); + } + + Assert.assertEquals(i, results.length - 1); + scan = new Scan(); + scan.addColumn(columnFamily.getBytes(), inColumn.getBytes()); + scan.setStartRow(Bytes.toBytes("incRow")); + rs = table.getScanner(scan); + out = null; + try { + for (Result r = rs.next(); r != null; r = rs.next()) { + out = r.getValue(columnFamily.getBytes(), inColumn.getBytes()); + results[i++] = out; + System.out.println(out); + } + } finally { + rs.close(); + } + return results; + } + + @Test + public void testTransactionStateOnChannelException() throws Exception { + initContextForSimpleHbaseEventSerializer(); + ctx.put("batchSize", "1"); + + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + // Reset the context to a higher batchSize + Channel channel = spy(new MemoryChannel()); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + 0)); + channel.put(e); + tx.commit(); + tx.close(); + doThrow(new ChannelException("Mock Exception")).when(channel).take(); + try { + sink.process(); + Assert.fail("take() method should throw exception"); + } catch (ChannelException ex) { + Assert.assertEquals("Mock Exception", ex.getMessage()); + } + doReturn(e).when(channel).take(); + sink.process(); + sink.stop(); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 1); + byte[] out = results[0]; + Assert.assertArrayEquals(e.getBody(), out); + out = results[1]; + Assert.assertArrayEquals(Longs.toByteArray(1), out); + } + + @Test + public void testTransactionStateOnSerializationException() throws Exception { + initContextForSimpleHbaseEventSerializer(); + ctx.put("batchSize", "1"); + ctx.put(HBaseSinkConfigurationConstants.CONFIG_SERIALIZER, + "org.apache.flume.sink.hbase.MockSimpleHbaseEventSerializer"); + + HBaseSink sink = new HBaseSink(conf); + Configurables.configure(sink, ctx); + // Reset the context to a higher batchSize + ctx.put("batchSize", "100"); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, new Context()); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + 0)); + channel.put(e); + tx.commit(); + tx.close(); + try { + MockSimpleHbaseEventSerializer.throwException = true; + sink.process(); + Assert.fail("FlumeException expected from serilazer"); + } catch (FlumeException ex) { + Assert.assertEquals("Exception for testing", ex.getMessage()); + } + MockSimpleHbaseEventSerializer.throwException = false; + sink.process(); + sink.stop(); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 1); + byte[] out = results[0]; + Assert.assertArrayEquals(e.getBody(), out); + out = results[1]; + Assert.assertArrayEquals(Longs.toByteArray(1), out); + } + + @Test + public void testWithoutConfigurationObject() throws Exception { + initContextForSimpleHbaseEventSerializer(); + Context tmpContext = new Context(ctx.getParameters()); + tmpContext.put("batchSize", "2"); + tmpContext.put(HBaseSinkConfigurationConstants.ZK_QUORUM, + ZKConfig.getZKQuorumServersString(conf)); + System.out.print(ctx.getString(HBaseSinkConfigurationConstants.ZK_QUORUM)); + tmpContext.put(HBaseSinkConfigurationConstants.ZK_ZNODE_PARENT, + conf.get(HConstants.ZOOKEEPER_ZNODE_PARENT, + HConstants.DEFAULT_ZOOKEEPER_ZNODE_PARENT)); + + HBaseSink sink = new HBaseSink(); + Configurables.configure(sink, tmpContext); + Channel channel = new MemoryChannel(); + Configurables.configure(channel, ctx); + sink.setChannel(channel); + sink.start(); + Transaction tx = channel.getTransaction(); + tx.begin(); + for (int i = 0; i < 3; i++) { + Event e = EventBuilder.withBody(Bytes.toBytes(valBase + "-" + i)); + channel.put(e); + } + tx.commit(); + tx.close(); + Status status = Status.READY; + while (status != Status.BACKOFF) { + status = sink.process(); + } + sink.stop(); + HTable table = new HTable(conf, tableName); + byte[][] results = getResults(table, 3); + byte[] out; + int found = 0; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (Arrays.equals(results[j], Bytes.toBytes(valBase + "-" + i))) { + found++; + break; + } + } + } + Assert.assertEquals(3, found); + out = results[3]; + Assert.assertArrayEquals(Longs.toByteArray(3), out); + } + + @Test + public void testZKQuorum() throws Exception { + initContextForSimpleHbaseEventSerializer(); + Context tmpContext = new Context(ctx.getParameters()); + String zkQuorum = "zk1.flume.apache.org:3342, zk2.flume.apache.org:3342, " + + "zk3.flume.apache.org:3342"; + tmpContext.put("batchSize", "2"); + tmpContext.put(HBaseSinkConfigurationConstants.ZK_QUORUM, zkQuorum); + tmpContext.put(HBaseSinkConfigurationConstants.ZK_ZNODE_PARENT, + conf.get(HConstants.ZOOKEEPER_ZNODE_PARENT, + HConstants.DEFAULT_ZOOKEEPER_ZNODE_PARENT)); + HBaseSink sink = new HBaseSink(); + Configurables.configure(sink, tmpContext); + Assert.assertEquals("zk1.flume.apache.org,zk2.flume.apache.org," + + "zk3.flume.apache.org", sink.getConfig().get(HConstants.ZOOKEEPER_QUORUM)); + Assert.assertEquals(String.valueOf(3342), + sink.getConfig().get(HConstants.ZOOKEEPER_CLIENT_PORT)); + } + + @Test(expected = FlumeException.class) + public void testZKQuorumIncorrectPorts() throws Exception { + initContextForSimpleHbaseEventSerializer(); + Context tmpContext = new Context(ctx.getParameters()); + + String zkQuorum = "zk1.flume.apache.org:3345, zk2.flume.apache.org:3342, " + + "zk3.flume.apache.org:3342"; + tmpContext.put("batchSize", "2"); + tmpContext.put(HBaseSinkConfigurationConstants.ZK_QUORUM, zkQuorum); + tmpContext.put(HBaseSinkConfigurationConstants.ZK_ZNODE_PARENT, + conf.get(HConstants.ZOOKEEPER_ZNODE_PARENT, + HConstants.DEFAULT_ZOOKEEPER_ZNODE_PARENT)); + HBaseSink sink = new HBaseSink(); + Configurables.configure(sink, tmpContext); + Assert.fail(); + } + + @Test + public void testCoalesce() throws EventDeliveryException { + initContextForIncrementHBaseSerializer(); + ctx.put("batchSize", "100"); + ctx.put(HBaseSinkConfigurationConstants.CONFIG_COALESCE_INCREMENTS, + String.valueOf(true)); + + final Map expectedCounts = Maps.newHashMap(); + expectedCounts.put("r1:c1", 10L); + expectedCounts.put("r1:c2", 20L); + expectedCounts.put("r2:c1", 7L); + expectedCounts.put("r2:c3", 63L); + HBaseSink.DebugIncrementsCallback cb = new CoalesceValidator(expectedCounts); + + HBaseSink sink = new HBaseSink(testUtility.getConfiguration(), cb); + Configurables.configure(sink, ctx); + Channel channel = createAndConfigureMemoryChannel(sink); + + List events = Lists.newLinkedList(); + generateEvents(events, expectedCounts); + putEvents(channel, events); + + sink.start(); + sink.process(); // Calls CoalesceValidator instance. + sink.stop(); + } + + @Test(expected = AssertionError.class) + public void negativeTestCoalesce() throws EventDeliveryException { + initContextForIncrementHBaseSerializer(); + ctx.put("batchSize", "10"); + + final Map expectedCounts = Maps.newHashMap(); + expectedCounts.put("r1:c1", 10L); + HBaseSink.DebugIncrementsCallback cb = new CoalesceValidator(expectedCounts); + + HBaseSink sink = new HBaseSink(testUtility.getConfiguration(), cb); + Configurables.configure(sink, ctx); + Channel channel = createAndConfigureMemoryChannel(sink); + + List events = Lists.newLinkedList(); + generateEvents(events, expectedCounts); + putEvents(channel, events); + + sink.start(); + sink.process(); // Calls CoalesceValidator instance. + sink.stop(); + } + + @Test + public void testBatchAware() throws EventDeliveryException { + logger.info("Running testBatchAware()"); + initContextForIncrementHBaseSerializer(); + HBaseSink sink = new HBaseSink(testUtility.getConfiguration()); + Configurables.configure(sink, ctx); + Channel channel = createAndConfigureMemoryChannel(sink); + + sink.start(); + int batchCount = 3; + for (int i = 0; i < batchCount; i++) { + sink.process(); + } + sink.stop(); + Assert.assertEquals(batchCount, + ((IncrementHBaseSerializer) sink.getSerializer()).getNumBatchesStarted()); + } + + /** + * For testing that the rows coalesced, serialized by + * {@link IncrementHBaseSerializer}, are of the expected batch size. + */ + private static class CoalesceValidator + implements HBaseSink.DebugIncrementsCallback { + + private final Map expectedCounts; + private final Method refGetFamilyMap; + + public CoalesceValidator(Map expectedCounts) { + this.expectedCounts = expectedCounts; + this.refGetFamilyMap = HBaseSink.reflectLookupGetFamilyMap(); + } + + @Override + @SuppressWarnings("unchecked") + public void onAfterCoalesce(Iterable increments) { + for (Increment inc : increments) { + byte[] row = inc.getRow(); + Map> families = null; + try { + families = (Map>) + refGetFamilyMap.invoke(inc); + } catch (Exception e) { + Throwables.propagate(e); + } + for (byte[] family : families.keySet()) { + NavigableMap qualifiers = families.get(family); + for (Map.Entry entry : qualifiers.entrySet()) { + byte[] qualifier = entry.getKey(); + Long count = entry.getValue(); + StringBuilder b = new StringBuilder(20); + b.append(new String(row, Charsets.UTF_8)); + b.append(':'); + b.append(new String(qualifier, Charsets.UTF_8)); + String key = b.toString(); + Assert.assertEquals("Expected counts don't match observed for " + key, + expectedCounts.get(key), count); + } + } + } + } + } + + /** + * Add number of Events corresponding to counts to the events list. + * @param events Destination list. + * @param counts How many events to generate for each row:qualifier pair. + */ + private void generateEvents(List events, Map counts) { + for (String key : counts.keySet()) { + long count = counts.get(key); + for (long i = 0; i < count; i++) { + events.add(EventBuilder.withBody(key, Charsets.UTF_8)); + } + } + } + + private Channel createAndConfigureMemoryChannel(HBaseSink sink) { + Channel channel = new MemoryChannel(); + Context channelCtx = new Context(); + channelCtx.put("capacity", String.valueOf(1000L)); + channelCtx.put("transactionCapacity", String.valueOf(1000L)); + Configurables.configure(channel, channelCtx); + sink.setChannel(channel); + channel.start(); + return channel; + } + + private void putEvents(Channel channel, Iterable events) { + Transaction tx = channel.getTransaction(); + tx.begin(); + for (Event event : events) { + channel.put(event); + } + tx.commit(); + tx.close(); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSinkCreation.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSinkCreation.java new file mode 100644 index 0000000..115bc62 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestHBaseSinkCreation.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import org.apache.flume.FlumeException; +import org.apache.flume.Sink; +import org.apache.flume.SinkFactory; +import org.apache.flume.sink.DefaultSinkFactory; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class TestHBaseSinkCreation { + + private SinkFactory sinkFactory; + + @Before + public void setUp() { + sinkFactory = new DefaultSinkFactory(); + } + + private void verifySinkCreation(String name, String type, + Class typeClass) throws FlumeException { + Sink sink = sinkFactory.create(name, type); + Assert.assertNotNull(sink); + Assert.assertTrue(typeClass.isInstance(sink)); + } + + @Test + public void testSinkCreation() { + verifySinkCreation("hbase-sink", "hbase", HBaseSink.class); + verifySinkCreation("asynchbase-sink", "asynchbase", AsyncHBaseSink.class); + } +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestRegexHbaseEventSerializer.java b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestRegexHbaseEventSerializer.java new file mode 100644 index 0000000..24bcf37 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-hbase-sink/src/test/java/org/apache/flume/sink/hbase/TestRegexHbaseEventSerializer.java @@ -0,0 +1,232 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.flume.sink.hbase; + +import com.google.common.collect.Maps; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.event.EventBuilder; +import org.apache.hadoop.hbase.KeyValue; +import org.apache.hadoop.hbase.client.Increment; +import org.apache.hadoop.hbase.client.Put; +import org.apache.hadoop.hbase.client.Row; +import org.apache.hadoop.hbase.util.Bytes; +import org.junit.Test; + +import java.nio.charset.Charset; +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class TestRegexHbaseEventSerializer { + + @Test + /** Ensure that when no config is specified, the a catch-all regex is used + * with default column name. */ + public void testDefaultBehavior() throws Exception { + RegexHbaseEventSerializer s = new RegexHbaseEventSerializer(); + Context context = new Context(); + s.configure(context); + String logMsg = "The sky is falling!"; + Event e = EventBuilder.withBody(Bytes.toBytes(logMsg)); + s.initialize(e, "CF".getBytes()); + List actions = s.getActions(); + assertTrue(actions.size() == 1); + assertTrue(actions.get(0) instanceof Put); + Put put = (Put) actions.get(0); + + assertTrue(put.getFamilyMap().containsKey(s.cf)); + List kvPairs = put.getFamilyMap().get(s.cf); + assertTrue(kvPairs.size() == 1); + + Map resultMap = Maps.newHashMap(); + for (KeyValue kv : kvPairs) { + resultMap.put(new String(kv.getQualifier()), new String(kv.getValue())); + } + + assertTrue(resultMap.containsKey( + RegexHbaseEventSerializer.COLUMN_NAME_DEFAULT)); + assertEquals("The sky is falling!", + resultMap.get(RegexHbaseEventSerializer.COLUMN_NAME_DEFAULT)); + } + @Test + public void testRowIndexKey() throws Exception { + RegexHbaseEventSerializer s = new RegexHbaseEventSerializer(); + Context context = new Context(); + context.put(RegexHbaseEventSerializer.REGEX_CONFIG,"^([^\t]+)\t([^\t]+)\t" + "([^\t]+)$"); + context.put(RegexHbaseEventSerializer.COL_NAME_CONFIG, "col1,col2,ROW_KEY"); + context.put("rowKeyIndex", "2"); + s.configure(context); + + String body = "val1\tval2\trow1"; + Event e = EventBuilder.withBody(Bytes.toBytes(body)); + s.initialize(e, "CF".getBytes()); + List actions = s.getActions(); + + Put put = (Put)actions.get(0); + + List kvPairs = put.getFamilyMap().get(s.cf); + assertTrue(kvPairs.size() == 2); + + Map resultMap = Maps.newHashMap(); + for (KeyValue kv : kvPairs) { + resultMap.put(new String(kv.getQualifier()), new String(kv.getValue())); + } + assertEquals("val1", resultMap.get("col1")); + assertEquals("val2", resultMap.get("col2")); + assertEquals("row1", Bytes.toString(put.getRow())); + } + + @Test + /** Test a common case where regex is used to parse apache log format. */ + public void testApacheRegex() throws Exception { + RegexHbaseEventSerializer s = new RegexHbaseEventSerializer(); + Context context = new Context(); + context.put(RegexHbaseEventSerializer.REGEX_CONFIG, + "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) \"([^ ]+) ([^ ]+)" + + " ([^\"]+)\" (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\"[^\"]*\")" + + " ([^ \"]*|\"[^\"]*\"))?"); + context.put(RegexHbaseEventSerializer.COL_NAME_CONFIG, + "host,identity,user,time,method,request,protocol,status,size," + + "referer,agent"); + s.configure(context); + String logMsg = "33.22.11.00 - - [20/May/2011:07:01:19 +0000] " + + "\"GET /wp-admin/css/install.css HTTP/1.0\" 200 813 " + + "\"http://www.cloudera.com/wp-admin/install.php\" \"Mozilla/5.0 (comp" + + "atible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)\""; + + Event e = EventBuilder.withBody(Bytes.toBytes(logMsg)); + s.initialize(e, "CF".getBytes()); + List actions = s.getActions(); + assertEquals(1, s.getActions().size()); + assertTrue(actions.get(0) instanceof Put); + + Put put = (Put) actions.get(0); + assertTrue(put.getFamilyMap().containsKey(s.cf)); + List kvPairs = put.getFamilyMap().get(s.cf); + assertTrue(kvPairs.size() == 11); + + Map resultMap = Maps.newHashMap(); + for (KeyValue kv : kvPairs) { + resultMap.put(new String(kv.getQualifier()), new String(kv.getValue())); + } + + assertEquals("33.22.11.00", resultMap.get("host")); + assertEquals("-", resultMap.get("identity")); + assertEquals("-", resultMap.get("user")); + assertEquals("[20/May/2011:07:01:19 +0000]", resultMap.get("time")); + assertEquals("GET", resultMap.get("method")); + assertEquals("/wp-admin/css/install.css", resultMap.get("request")); + assertEquals("HTTP/1.0", resultMap.get("protocol")); + assertEquals("200", resultMap.get("status")); + assertEquals("813", resultMap.get("size")); + assertEquals("\"http://www.cloudera.com/wp-admin/install.php\"", + resultMap.get("referer")); + assertEquals("\"Mozilla/5.0 (compatible; Yahoo! Slurp; " + + "http://help.yahoo.com/help/us/ysearch/slurp)\"", + resultMap.get("agent")); + + List increments = s.getIncrements(); + assertEquals(0, increments.size()); + } + + @Test + public void testRowKeyGeneration() { + Context context = new Context(); + RegexHbaseEventSerializer s1 = new RegexHbaseEventSerializer(); + s1.configure(context); + RegexHbaseEventSerializer s2 = new RegexHbaseEventSerializer(); + s2.configure(context); + + // Reset shared nonce to zero + RegexHbaseEventSerializer.nonce.set(0); + String randomString = RegexHbaseEventSerializer.randomKey; + + Event e1 = EventBuilder.withBody(Bytes.toBytes("body")); + Event e2 = EventBuilder.withBody(Bytes.toBytes("body")); + Event e3 = EventBuilder.withBody(Bytes.toBytes("body")); + + Calendar cal = mock(Calendar.class); + when(cal.getTimeInMillis()).thenReturn(1L); + + s1.initialize(e1, "CF".getBytes()); + String rk1 = new String(s1.getRowKey(cal)); + assertEquals("1-" + randomString + "-0", rk1); + + when(cal.getTimeInMillis()).thenReturn(10L); + s1.initialize(e2, "CF".getBytes()); + String rk2 = new String(s1.getRowKey(cal)); + assertEquals("10-" + randomString + "-1", rk2); + + when(cal.getTimeInMillis()).thenReturn(100L); + s2.initialize(e3, "CF".getBytes()); + String rk3 = new String(s2.getRowKey(cal)); + assertEquals("100-" + randomString + "-2", rk3); + + } + + @Test + /** Test depositing of the header information. */ + public void testDepositHeaders() throws Exception { + Charset charset = Charset.forName("KOI8-R"); + RegexHbaseEventSerializer s = new RegexHbaseEventSerializer(); + Context context = new Context(); + context.put(RegexHbaseEventSerializer.DEPOSIT_HEADERS_CONFIG, + "true"); + context.put(RegexHbaseEventSerializer.CHARSET_CONFIG, + charset.toString()); + s.configure(context); + + String body = "body"; + Map headers = Maps.newHashMap(); + headers.put("header1", "value1"); + headers.put("заголовок2", "значение2"); + + Event e = EventBuilder.withBody(Bytes.toBytes(body), headers); + s.initialize(e, "CF".getBytes()); + List actions = s.getActions(); + assertEquals(1, s.getActions().size()); + assertTrue(actions.get(0) instanceof Put); + + Put put = (Put) actions.get(0); + assertTrue(put.getFamilyMap().containsKey(s.cf)); + List kvPairs = put.getFamilyMap().get(s.cf); + assertTrue(kvPairs.size() == 3); + + Map resultMap = Maps.newHashMap(); + for (KeyValue kv : kvPairs) { + resultMap.put(new String(kv.getQualifier(), charset), kv.getValue()); + } + + assertEquals(body, + new String(resultMap.get(RegexHbaseEventSerializer.COLUMN_NAME_DEFAULT), charset)); + assertEquals("value1", new String(resultMap.get("header1"), charset)); + assertArrayEquals("значение2".getBytes(charset), resultMap.get("заголовок2")); + assertEquals("значение2".length(), resultMap.get("заголовок2").length); + + List increments = s.getIncrements(); + assertEquals(0, increments.size()); + } +} diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$1.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$1.class new file mode 100644 index 0000000000000000000000000000000000000000..16cbbe16fd7f11de48afe42b80066e59bf0b7263 GIT binary patch literal 1296 zcmb7ETTc@~6#k~IEG?@o6ub)v1=~^?5WGT2v|===@=!v2oetCO!ZJ(tg8HvC5pNH^ znxMbQcxC~uVhC)~IcLtC^PPM5et!81U=E8}^rB>ri5#++%;5&gIgFvwi)tUHP_uB; z!n6g>klhhp$rF+6FibQy#E#%`}Oi5pzetZjL zKTJ<(hp)6Yl#CWCM@0;25jZBIq}1Ko47ugkQf)`BuR{w|-fYu#w20z>Qh0gPpdtM& z9!8X?r{Zm2b72b3>l9B*$j!z7SR8S>L>c6oejG^k#5JWV{@t}{V?iZd*3$E-x6X4F zb^LV;vo>yF&c<1sv(X3JMjrDPZriwnc^h|ekD)Izr3z`IW~k|d2W~>IJ-@*lzT>EXunQ*mZW&FUtJ^-qQ1|3Dqkx*UP+7w$ z?SB>oj#QywIs_1 z^9RO*#F;OjKr+&}fQ$5I09S|_7scv(q&^_?31($5gRO6Ro%VHhI`9mVzJZ4BcWA}&W-y+rBz1qwt@-~a#s literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$2.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$2.class new file mode 100644 index 0000000000000000000000000000000000000000..1d6c8ed6a4a2e029e97af9f757ff7d17328044ca GIT binary patch literal 1361 zcmb7ETTc@~6#k}N*-}?%0q+Vb1>5B^3V4N(K*eBE^Z`SRZ_{OH7q&BGFQ`xcB~1hq zAN&Enn5e(UcxF-L(hz9UIdeJRH|IO&%zpd*zAu|k{;dUN5l=G;-&0_?k zHpXm>+u#hjEfJK~gdZ@B)Yiq8;7RNU+|$ZS!ceN1i&(dOkI$uMUh6;#HO)B#(Tx!JBmvNj?|7Q{Lh{ zO_yoY;AVW~$FmIY%clXhkE*Sn_O6EnR8|m7 zp>NiIH!UNW!Fi^X46A{NB1y~fQ-~-{kbaApsX)W!-7o{88vI3lU3&3!<>(eeR)h@` zQCiRa-VFJLx1QXLeXSxJREf@IzoA5&ge2kBQ9#YpEgr=rG?2-rR$Q3c@G8Yq7v9E9 z8^n=IXGuYRStp?@9XL4W zpnxeG_Z-~E0~-$=Ji-)p)X5vFG{I0f93?~l@lq-5|CqfbGPozdm^7L`PCL6A`1H6K z2FjJR8+JQ?H@o{BD0SJg>AOmL`AOa;AtFi4R{6C74z>jz>}+ZS@84U+4ftpKOOJfIlgMCLI z%`c=3eK?Pcv?8RbF`YA9!eu%$tV?9gJw^8uGS&{xkj?I(gMFaQ3=Cx#vPAgCsHB2{gD?J-Ti2?&jW|V^T_XqwqYEJ+F literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$3.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$3.class new file mode 100644 index 0000000000000000000000000000000000000000..a4bb8d2a1c50df1fea28a6b7e60da7083540baf5 GIT binary patch literal 1325 zcmb7ETTc@~6#ix@EM2NC6cpv+0tMTGELyylkZ6HuQstq9_&VJV+lB2c*$c?O(nP#H z_yhb=#xpBm6+>W?opa{QIp4X?{P_9pJAewRY4oF@mRSR7%o&)*-F_4YP(s+rrxM;*PLFSMFKuCJ%-6JUo*2%NN8pNT}>qT(l$e? z=C=exw(d&tChjyvu*I7mNrvja&An|NxN3hQOsOmwGOwf*LCxb~C}_KQg~$pON-9Oj z9>ZMmcbFcRj_av&DYo`ZCl(kh2GBcu2uIPM+DT3oO0GJW9St@ z;M4sa>7KDh6i_>=3U(%m`r>O#(`29CW0>?fq(SjO%jHz}0HV}NdO$S#v&hluAaOO? z_b5qu{ur#ha15>d89g5o#UWbzNDB&uBGzaTZ# z`xSi}${(S9g3jKPSc3w+u6$}^Ftl+DY7<@Hd7OghaSOKzdW`f_M8|2JNDwA*C!r>$ RlCx>dV1zh>wEBtC_X}%2Sz-VH literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$4.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$4.class new file mode 100644 index 0000000000000000000000000000000000000000..b0e527ef80b06e03c6797be47125108d77326eaa GIT binary patch literal 1127 zcmb7D+fEZf82)BkSX)rLM2yC+R&wu#-^L+dM5kF^cIb8kq4h>*KzUra*OHMU4X$ zW+oAs>29liCG#wdq>io5lf>9ecH-P-PvQgHRhb?v35;fgFl{^(Xm{hJFV&vX10&x= z`L2;^Xm{kGr&1$V(|1-sd(7)Pg$}nI+Av!Y*l3;wc&e=CHU-L^c*_XXx}h~M^WC0F zHdHU7WUL!&6>X{{bo?)2*;OGBJh#>)ok*prA-iyf%o>X!ldEH1fna1EC*PL80$rJ%)SOiu99;hDy@(3KA|k$lksQ@ y8dKp-!1pGPxvLzxt1!S7!mrY{OnQyy^#XkZHw$_TQ-$s}D;(pkN~;l4em?-?o+0Z1 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$CellIdentifier.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$CellIdentifier.class new file mode 100644 index 0000000000000000000000000000000000000000..e7570116145eac4dbbef1ef7b337baeb04bde2e7 GIT binary patch literal 1290 zcmb7EOHYYd1C=hK?HdYbAHtWME~A*K3xa9An5=TyIt9 zo7||G`U>Tmx^Fq_dacTRQ=jv<9OHhG+yx32=-zG1vFbAnlj)OOTq-UVGm8vL3qg0q za?A&fjjHKA;#He4B`U7L?M3ccV&4ub0whDMWZHIl*>vjGie-8XTG??-uVi!IH|e}^ z0wl?UwTO|N&ImosCk<{>vA%R=jX&kO&7D>KVRg+k>V?c>hLBsYiQb8$$E2vs(6vzK z#`-+p48YS+7$OU9!!yi#mSEU(P|H!#MME5?G$b&gAqq`H7c>=<8e+I6mTnc-8K#au zp+odE+`vs0w=_&)njwCeS-_sg(mH6=EnA=SJibLbgwixI5+-~6=0unqhUxpsi7|Sz z?w;rg$+UD0FqGVlP44l!>(P9A1JH-!45|?%k+7-%Ozh~8GGz?W+Y+HSN+H2XZSoRA z@W7JRKs+wyL3()p^!~wb4{@92T0j`6LNN>2_>7~MJPU48)=zZ6XExi zDxr_oeuT+=g-&T3G3hmWq&Mi3-eOpKhtqUEM2)B{&QPZKr2<$|;0a&?MhxfMFm$qv z&O+H8gty6QH3^HLv=bE6S_$of3>R>bB7(yUDkhrE=Jue@=YAk0Z&Mw%iw-h!p8g-v zDdRZ?_QMK=m3CNFUP6&YTlpVupAnM25Wla8O5cgs9%jhybDRCkZ59ID#pUrk^ufXv3Q0)f9N7pZtMpwv3+WGZ)*@#B literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$FailureCallback.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$FailureCallback.class new file mode 100644 index 0000000000000000000000000000000000000000..85a5a6e3bc429b2fb2d13cded8e0ea9064de0c37 GIT binary patch literal 2901 zcmbtWTXPgu5dLPe*~xAO3<07MC4d3;0!$E8%*N;v0t7>%*(E4mC$lG;36q(1W)>1I zDtIYNAJnqc^4%(Y@Bt_i#Rv7-@;6z2XLge;VWmQus+{iAr@PPBeY$)0uYZ2~9l#-c zoWM4mNa6{cl-!71PRZqExr`=p8e@_hm)t9Dc(ol9C?rtC8M#ch(u@3yCAm8*m)A7B zo}|UOB;LTANxX%(+wl(GZHI{|$ypjoQbA~#)=<_kqafyZ)_DaxM`z6orcn)T$FMxt zs`|cgLqi@0#wgdEf=!m`I8!Di6T%Yq1yNFvZEk0V-kfb2`G}0Tp(qQV9<*@YJ#O00 z`s|K+o+C_`b_qf%*`e*Z3idR=v4(VLS&v2?c2KnEgjWrVA_#4_tUx)ZARf-xL2sXe zeWRXVHq44?%?M-Ksm=)_u-)^<%#;}jBOffd*2$w}3l!2_e86_?a8SYDsfRIq5ZWlO z%@vv^a2=}4Icu)EHc9D87Qm2K5(*v}wOuh*otqMV(VTK9=_EYUnKXS{?(4#s%pSGn zD^`6mRIdmH`iScaf5e=xx);GhWf{e>|KWY0IFTzBbA!Ak zCJS0YI#tV-W4dKyc-|5fS!ua+gLHgqR#>3~X8Nq7tqn)320W!>1se(>o8+`viE_rK zRFGWJVr~)zyX=}F)2E;`mFk`JqJ-gILr57DbD!b#abU`)(?Y)W?GgAg5HCDoN&fN zO{z49R)k1H~bUn6OEOjbi`>1@~X#T-9|dAD>z5Et8XWL-Y$vzQivw2P(A$*_BxUS6BboOc|1 zy${e>`M_~r1agdUUc{@eG-s!6pt#&q+OgemB}tb$@~H}vu_bCnf;51Wx8XFXw7uDE+U@E{t9goZMUe~g8f{# zL*u0vkx=KcQC+}h^%A<(%ji+BV6S==2dHxx^0!M02A(FB+#zCBBTk}ii8zTj7I6}B zE3E*X_-dBVkSbuCQd=VaiMrB`fD)a_>|M0CAae(8KcMS2^xN351sj*pv4l-G5IfC? zHY+#jpp)12a*Z{BzlL`8Iy%))uv7gEz3Qjft$vQQ`b7l3D*~Eb0iVSYJWo#&-s+iz zM=(6==UI-t2DPMN0C<5LneA>2l2h>_|2eL>$~b-|m6^y9d~69@&XTs0*-F}S7hQa% zJBZ)KqY*>NV+wBY<6S%ECi};&$oZ}aZ7r@nNbsgF(WZWd4)tq3$T!%fev7R79S)El zA?;Vck1T2_&eh{vO}doGsOqt}8jiNF#?q1JTMX4>7_P^V$YlRS_YxkzNxNEk#EA{6 k*KkwfzMG^(-n5#imU^m=VVH6i$8nG}NnhLe+qe(vzndT5TmS$7 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$SuccessCallback.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink$SuccessCallback.class new file mode 100644 index 0000000000000000000000000000000000000000..ca7e8d5e7d73eeb257104408e9ca1a1723f804ea GIT binary patch literal 2360 zcmbtWTUXmg5dKye1V%}?g%;WnAe3T5A`*JzQd$Beff`7#L#|CD(&A;et z-rA?UHaUeheQ4kNqk8(S%q4)!38$RH?(FQ$&bPDQjQsaMfBXqx3|md;z;qJl@s*Ok zR>O=Mt|u{zIVH_E;RbH1;Z{9;)L$aW)q)xpb$pYgQ6`BcEH`5Xx0`VXt4hl1$mzJN zV@)98`u3JUUuM&KW|@`9aZTIz>`D+wFEZ6;Xl6K03bfjm>#keWtV&xt&tzU;xVE1a z`6b6TXX0tWi)29tJfVq4=bgy$J%Pd6p4Eu6dvH$f>*uAwxs2n<IuCn;*sd+}VC9%+1?*k`T?6+&yN~lVR zwbD@WlskI)5jqd{3)DkXB;{vHQ#_4lQk8R?VkywlqUg+Z9qs$j&+!shKhj=(;QG_U z+YssBpruE)QJ22FjYPUDv5orl@b75YhW;w{9pKoF28LNdlXe?twL56nR?($p(Wm9` z5%<$bs1q@W6lW!+iA;+ng{>}@6uJb4DI3I6wIAUua2Z!vnH2i76Us_!2{$lZ4U1Uqc^5`xk_k BPR#%S literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHBaseSink.class new file mode 100644 index 0000000000000000000000000000000000000000..8c3b48121f3e65a257834ed41e62211b97047734 GIT binary patch literal 19238 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHbaseEventSerializer.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/AsyncHbaseEventSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..77c22c3d63128c864a15e8ee87488218d6595c4b GIT binary patch literal 564 zcma)3O-lnY5Pj*_w$*B_UkAa1r!9ghh^H2zEs8=xvFN3zG^E?q-E7^>7WAii@CW## z#Mv!Kp@!gZI|WufWxLYq(8LT4w>g-Jh2V+RJ|F1Vwizlz?HOT{ zhz7LQ0G+J)bSz@UMf_?czfbIgdPx+KFNt2G0k=j*Dj+p9qw|jzT^j~k{;*ctInr0c zJkA;NZl-@2CXrOv+9!F(-BiI%Dkj@-sG_Ac(OJ3{!^N5tu{O_qDgRe8Lp^iF7slgv z&aRx8JY?2)1|#665~|R>EED!7|cUM-jo;^a&+=2&`%c&3`LXxiVn(Ite{Gm X4XWm_N$<6le2emJ)Tzd>lOY=4*502+ literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/BatchAware.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/BatchAware.class new file mode 100644 index 0000000000000000000000000000000000000000..c2d18e7e16f2120ba0b6b891b3b30fb5f9d0e1f2 GIT binary patch literal 158 zcmYL@F%E)I5JYDYL5+!?!eHYTopgv)sg3<#W|t pmD{4eu+5}Z{@aA*;BzH)&d01&<0Aqg=pO(S_G<_S!nn@>(HF#uCtCmj literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$1.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$1.class new file mode 100644 index 0000000000000000000000000000000000000000..25a444f387b4fec63bbfbae6f20846855e0fc88e GIT binary patch literal 1418 zcma)6?M@Rx6g@)=YuB|@!1{qGVv&9*OYvI>2@nV-RZMD{;J@j1Xcw1VvO7!kAxt#! zK{Qb?n)m=dl=04XQ(6UVo8H;Ez2}@e_ukoGzrX(ka2HQfNFk>~$Fzo9I;JqAOkPI< z1!aml1(Y=0)^JC|EW?m&*+FiOVW#5wO_T3&t0l~BC)^cgV7sr)R-FgJ+*l!7rTqdy z7H!v-OAN()pO`|8A-U=`1jBH}cE$5>w=VpbyzY=^q~clJsd3*{``DROX)zd2U03+4 z4i5rB+d_YOxiV#$@I#jn`5sJ*H#~1IK9l9x!jUQrqGC+;q6xG&k!z!jeRss@hGL%h0FOHvSE0djesFzAfLHFMNC7c0^M&I_%4q z(pc<1{V91Zk)&SrLf;bWM8uHpbZ=H=M@?9BEyttwHlGRE@){cE43sf%z`!{JY0NWB zca6izVg?P}Jp=dgK*1gwc!b9WvbabC)kSdfJmty^nZIjB;K=p=nlOwWfjjl;&HiL@ z>Uki!FKJrxYDRT#St6k8Fh>_+v+wCXrZ1M~ZkwxQ>}Ke5)jiden7*v&7y73^I$>4% z)HI^%MaTU)Mzm|%Vyrr+5eT^)N^ji>gBD%Q{HsC@lk{fL!EhEVlTm{}Z9nWb^|z1c8FqtcNig?ZAW1g7idTE5gVfj8VveRacv>HBpW$+L~l~UpWTImx7w&~MRD({Kl1IF>OOJ*XL$wI>=Tqcn#gi6vno>`{& ytFfR-9+l!?@c?Izh`aMP+5s_Phla=|qC~FYdbCdBMkFzXn;4@fRkakY^!Wq2vu4@= literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$2.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$2.class new file mode 100644 index 0000000000000000000000000000000000000000..4d1a284a84b12315e0139871e8391f0a64900c42 GIT binary patch literal 1433 zcma)6>r&G|6#f=kVq=7I74M=&(t-rRd$CFp24<=-gToK_wN00HF(jQNW#nm`@dS2z#JAc$l$IH9XTCi7}s$R6G}350P=m{G#$dNEn@%*~Qo7`>)YsYEr2`iB9d#h39fv{G}v~JM3NG|iz zm0^jYV0P$}-(*NFdNsk&SCOuG+uExN{~fP7q#3AqHg`6;FV#6wrc_!C#;WTIf6?JV zAn2IyEM9Jwvh4O-F2k^yuk7-DZaLhoTV>C41b69HU;1E+W+**3(C~m^=#1T3bywJ7 zQNt`lW<%Cp9=3c+b-fKMv57T-uv@+i53F@x?n_71MeQWOf~~^Lx49mtQBsL)crD)+ z%jCq+d(!4M-^vJ8x|Ky&XMZ>RWb}lmeR9U*G@Wctc_;SrXBAnC5Chm zazCVznuU$&S;ay6?sU`Ji$2n3Nh+a>et=$>{03I| zj;=3s>Ow!QJ!AuX!~m@$u@wd}OeeCB&=^?|Tj@?=m1$QVqlK?vN9aC8DwfiR=sAM+ zneN(=KSjt!?2{mml1+*-}8SS^I SDJsMm?qG-{)t(IP^!x!~Vreh{ literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$3.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$3.class new file mode 100644 index 0000000000000000000000000000000000000000..ddf1f021ac9d6c87612b0478d6a678a22266b8ba GIT binary patch literal 1973 zcma)7YjYD-7=BKYcH7Oi4N!`=3f2IdG_cj+t*wO+i;X6wklJWFd^p)0lZDN0W-kGC z)Zf7`@T<;96+bxe$r*nV!>I4sgfv)~CNnvg_q^|Op7(b4?|=UI6F?q&lSpAn4)3Tq zhIf-ByOhLxcwY`5DELspM=CC2S;Yia6s)R9;$taUQ*jwrR5C3nxT>J2;1h;qm)mJ> z2A1pi45{*M-sMIZShi8N{9uJ)JZM>ddWqqD+4Y(R?{KpvjIZsmEezjs?ij5)_l2=> zmBuRVrOB%0Siu^@vOc2C|F6yLFeHj@Lom#gEk|sI?Yi)`dEF+-@v>`jdxv|L-1mhE zNs~bzN)In>$To$F&-C#5{)dFjR{-T({GA-Lx&? z1jbGGE~!pc18&}_@J_@_!8)acL0!LRicS<{1=kp6pS$IH{kAY=tS75h)8Rqrk(ZSr z8hwSH#204hS;05PmS=S>TQo&ufL@3axjJMTd9X&Q_`U94kv$dHO_pCCbYo0ko^`o@7zbWpKHi7I?dpglZ<)$fo zKYeM5o`~$I{VoBfd=b>Bkj1uJE0ihX`tEb>`l3Rj8X+ndM$jCThb;X*$GqgYH8RJe z8h#^cal#)?>x)?T6dA_qJTP0Ne<+igy`h%vcRS9|Q+*6n4Tz;uvIPN}sUPV}5U2ks zyh5k1(yEA9B$>%BJ^;(+9w3(e4e?*-D2CT)94AG3#qc_<=ST+3;0?S%+((Eqs>{~3e?@(gjqs)H59{X`XeI7Zy zg@wq8TYV?qCZt&;oS)TOS;seDK|W#_6c%?k*vG)r`#K?%8|J`Q3AW=VSTf?_YieFbSg< zr!gg$={N>)DUMfgSuU^2<+VP{AlHXkTWY#do;Y^bAug8m^aP=<(`?o0?#_P_&(z#v5F(3vJVEZVSyd ztXo>W!d;;)T&1;4@6u(~uncdGVJ6+7&*5V;YYfqXT@?%iMZ*$H&FzYCR(Zvwox!55 zb90S5hI|h*T?3s#PKvWsy;4=Pli|sfKDL;nnS` zf+ZEpSW%J0kczW-Ld7uNQE>xh6{~nx#TwpI@V<%-+@x!&_y8Z$T~&O9k5znvF@|(o zkv=vbD!7ELKvz+PP_U_@hPsO9@H`cJ8_dbIo|>YT@jJ%9cR(3A`&<9b8F6y3-KhNb zHx@nNaL;zA{PvG%vCeS5qYw$Q(e&nbWXa~OYQf&#Hav!W`cTQ`j=Ud%Uv;?UazEQS z*`Qr%xyHFJTO&0+K{F!TX~SnW_B}62&r+wJZ6)e6L?a*`b8d~yLb;V zDHa25&+kZt(&$4d5zrc=?i+iEUWU6!lMrY44Sh@Fft|XG{`EjSHNK01^?U#P$$p^o zqJFel#3_c)$mw&8urF|qeTg*t3e)UsEVFNLlYNUC`wm;|d;dmR@=Fo{FAznHru{Hp zM9L?`3~zZ3OQH5Wogx_s>|Y}LKqsXOq&tJ|kw=IsNGBhmM?vNwM zNzllJXhnB+7YP~tQLfd%AdI2~L-CIL_7@36`c2?vdPeErsY!|ll=cWEKlq!W-SwW> Ezmk5Q6#xJL literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$DebugIncrementsCallback.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HBaseSink$DebugIncrementsCallback.class new file mode 100644 index 0000000000000000000000000000000000000000..a93f223203e2e70f75a8f41df5950871ad1a5026 GIT binary patch literal 680 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 XoBAEozhWlw7nt~OlfI|y5`Op>GBQ=w literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HbaseEventSerializer.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/HbaseEventSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..8bbb18997813264fdf41cc3d02f793fb4697d42d GIT binary patch literal 535 zcmb7BO-lnY5Pj*_+G@2{J$UfqsYNhCFTzSei=t2vEO_yh#&nySCMBD#;7{}55Aa8c z(^aHUK_n0|GjHC!d3pbMeFMY#FahGW7H0Z`kucnlxS>69r{j}$VWocYWnu@J_kAcg)R9D(iYX5qn zAYXH!{FfE}c(ED7$%-ARwol)hf9qptaimP!m|ROrDFVU224$`(+gczr3}ptz1rsxfTkh{h+fT$siH literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/KfkAsyncHbaseEventSerializer.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/KfkAsyncHbaseEventSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..5bdd7cee9a92334c9fbf4ec4fb5419d739cdd9b3 GIT binary patch literal 4336 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 U+Lvh+C@4b~`3x0V!JW;;Kd3MlC;$Ke literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleAsyncHbaseEventSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..bb34c15ecdfb7ca11f62d1d454f5c097291858b5 GIT binary patch literal 4273 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 H!L9!XPEj_q literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer$KeyType.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/classes/org/apache/flume/sink/hbase/SimpleHbaseEventSerializer$KeyType.class new file mode 100644 index 0000000000000000000000000000000000000000..7576159de1af86c088fb413692edf44c990be990 GIT binary patch literal 1409 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 QgGY2@b%HQF4g`Gi2bMxdkN^Mx literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/IncrementAsyncHBaseSerializer.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/IncrementAsyncHBaseSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..d8a5255ccd3875ac237ae42dc1dc2999890e3c75 GIT binary patch literal 2226 zcma)8ZC4XV6n-Xe8bZ@JD%i@9gG9mr_4uW@qN!=Xvg(d*|fktH1vN@Hu|gkwbY1@8BvA3p`xY z@f9i>syZ?#Yp4z5I&SdEO&wW$J&Z*xWpN^lTROf$UB@zRYq+D~u7-O8>A>1(N`b_B zl?HoDAY*&YPRkWA?2hkCH@NYH27!sX=Qm7i$FjGjxkV<@R3{~JDLbwcEC?j?Q>y~0 znzu=iqjkrXw>zy3=|2cba&^zPnyZ%Y@H*N|1=~(rpcIF1JMJ&$_J-A#=8|jsvPC*7 z?OoSitkT|!B$%f2yYxwc&H}=vfRg2A%lt?IG#(A za`~zHW9x}!b^@nq)}3}hOhYS9!?l8rPZ7?>49bcm)NHX-^KK`&FMsVwa$X?!V?@vk zhB(p=MMm>joGHae0-^3f$V%X~9J`0og%=oqJ-@p<-5g(e13fPDKQLKx`7NS6!dY-EtZ#b*B!wj+*BN^0%PG7ow3ZF9asz_trHOm^%c9S9zSUK(ZElj zd|r+<@7s14)uxi#wA_YyXXCN7N$31gaA8KcZ&ic!8&%+VKkAy-Y!X)3YD2QM6GS-} zk6|kqstM|ys<*jIFHC-l-z!5kIyd_*u9=ZOc$m$kwYf>0`LOy20w_&Uq9$TIR4ZZ4 z4H45y;5%+Z;L@ObxLFzijCP`zLUBY}uO+UFmgN|B1KGyM^hW1Eg@6D!npT3y&d|ut_lP7( z^KhZKk3?a5AIUz%h&n1FjcMrkOhKIv%_AssR9cyTSgB1A@L7Bk!7mVeg3dAwpXwv) zYIly1FDTUU(5i=;!KV}{$8`?p>5Qe$s5Ov!hV-AbPM{y=#epzW5lUX!Op#Zihw%sH zj>DaOfy~+gwE7EV*9v~w+q^yyrif?+ z{T29v%sEAis(660LNRwNH}VvtPcgO+{msNLViZdQi684Fehl-tNN9}uWrR9U$b5-0 UIm-hOT{*1$5-uxPpoH&r{Gj7U9glQ87D(9Z zwigNJ3+)aU4DKD_!Yu55sNU_F3Xa%8N5fF2f znshuToDzs<}?JxdPy`K z@2R=AVl`}Y&MOCYjhtrl+%DKeaGjs+fD}_@-&=L6&430@WO`8wz8Bg*g%gsQPFcAT zIJUE(z-S*BX~it~wYu+-20@igD|CEML2FV#V5ArKU7Acn+4UQwo|Ykuyz1{ql#)_j z`eBrPrpcRWB`00A!|Af5!axpYvc)IXx@9&)$2E&iL*_BH;8Z;;R6)AjBQV)bdd;f% ze!Ug4zw3D5Z;w6>6L6vcs`tT5L z2QYk3HIiy0frE@IJLT=(VmqWwr3pKlqcHE-s-IpSw#ju!U+S%aNNLQ95HYd zLppf80#irXKn29urwXnszdBY8RI#SRG4KRWC5+2qF>as+PaxAZarzZpo09<_b*cT# zK!Aph&_EOG0vEdwqM7wS#>F=CE3DMxmOew$fy&P4EM%{Jj z<(W)xmuLHS{w~RNGnAv@(ijop1 zAk)`PI;xk6>_eR5XZQeOIEX`tb7f=ja~+etp;mSa*A#zj9?%WGUFN;un$Eq1$i=r1 z`;EI8PRcW`z~|6#hS-1+N#YZH%ALSxyo*pSaW7>>M>(m4vr6%BblFmrs$bwVpAzB> zpOVOq5V;*7GRP{3T-%pn#i|dB;V$~3O@A0?Tek0zU!2MVx#2Cub7!}pbsX8Fu1q9w zo)H;UP^TjCwnGCd)+5#_53y&XhK)L^xL3ty4fkzW*fP#; z728$pFtl`-s`JAOUnE+pn1Q`zs0?K+^#Oy`>yH@9&(w)vSaoGAUgXoUNMG}DM4q;* zd>)N>D$RcGEbCBa3`19?fx{E-hr&6H@~Ln#8Bd&W%roH}D}Un2X%dO&W`B4lV(kgy ziR62c4jAk}=%>DsL|pA&-+jl=xRYxcIj+n!MKnFl{mC&;=5_5w6O>W+WDs+mr=;@n zQubfkLVluDGS}rtl9V{F)cN3mYSf10n2o~rRG#|cNSelXuhzeB#5QmZjRxwl8Mc;Y zabza4P|VO-;O?nPyIN#g#)0A3ZJ>>Hh9^rL|2>JJP75~) gm2iv1-(HB_EUJ+f>kCRoEd3U=&cvF-J4Mpn-*QFDT>t<8 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestAsyncHBaseSink.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestAsyncHBaseSink.class new file mode 100644 index 0000000000000000000000000000000000000000..dc6a15fc3f0ae9ca6ec78e7d2a460257af6cf693 GIT binary patch literal 15686 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 aDu943oYMw*lq%-Y`<3u`*q#Xi^M3%eLQ0qb literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestHBaseSinkCreation.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestHBaseSinkCreation.class new file mode 100644 index 0000000000000000000000000000000000000000..703be152f4107f6dda6f329026427d035b0d563a GIT binary patch literal 1712 zcmbVM?NSs+6g|B=%PhknFp37VekB@rM{y*mF)X5hq9z-(gisa#HIoL0EHl)6Sn>|O zOsbM#lBzsF9x9d7Gh4f>iNES_7Kz>JBnEtD`bjB(74 z;1+IMxPxyj+{L%rnyaE&#k`4o79$p_xL?Hs6N@I6Oe_nGBtiJgiuBVcJ`gzHisEfg z?n{41d0XvlPkC#-{ieXsd=LidfV=|S)!$hmt!TZla=Z3W=zprQd?21c+h#J;$Z8bA5P$Iy|pV}Nv|!#ZEr1&gK)cftY^6` zlcbr~9Ll}C!T|v4ksj=GZ&)w+34w_|*aC!Mx?X`ZgF@&mne*v)^P?6z5;HV~n^)V;|=zP>u_#=Vbff8&FrIIek$E47#;DrRz{yb3f{qjWWE zw*@BqDT)g6*%|BA)wv8-kUR~ORE9n?JM!2|Hnf0Wk23}t^_PteT;kg`!BC9@(?J{vjF@`Jnibz-K zEvnUfb?!Cj(So_e)p=g0J>9MUalQvky3Vj;IU|R#U1!ue;f&Gh32}lzT4@V6sr*cz Q7?babaf5M!k(%n}|J!Jw-2eap literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestRegexHbaseEventSerializer.class b/code/flume-ng-sinks/flume-ng-hbase-sink/target/test-classes/org/apache/flume/sink/hbase/TestRegexHbaseEventSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..cfd3f0b8d41485521d3a943bcdf251b8912798df GIT binary patch literal 8562 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/pom.xml b/code/flume-ng-sinks/flume-ng-kafka-sink/pom.xml new file mode 100644 index 0000000..8ad229e --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/pom.xml @@ -0,0 +1,91 @@ + + + + 4.0.0 + + flume-ng-sinks + org.apache.flume + 1.7.0 + + org.apache.flume.flume-ng-sinks + flume-ng-kafka-sink + Flume Kafka Sink + + + + + org.apache.rat + apache-rat-plugin + + + org.apache.maven.plugins + maven-jar-plugin + + + + test-jar + + + + + + + + + + org.apache.flume + flume-ng-sdk + + + + org.apache.flume + flume-ng-core + + + + org.apache.flume + flume-ng-configuration + + + + org.apache.flume.flume-shared + flume-shared-kafka-test + test + + + + org.slf4j + slf4j-api + + + + junit + junit + test + + + + org.apache.kafka + kafka_2.10 + test + + + org.apache.kafka + kafka-clients + ${kafka.version} + + + + + diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSink.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSink.java new file mode 100644 index 0000000..dd40224 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSink.java @@ -0,0 +1,460 @@ +/** + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + limitations under the License. + */ + +package org.apache.flume.sink.kafka; + +import com.google.common.base.Optional; +import com.google.common.base.Throwables; +import org.apache.avro.io.BinaryEncoder; +import org.apache.avro.io.EncoderFactory; +import org.apache.avro.specific.SpecificDatumReader; +import org.apache.avro.specific.SpecificDatumWriter; +import org.apache.flume.Channel; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.Transaction; +import org.apache.flume.conf.Configurable; +import org.apache.flume.conf.ConfigurationException; +import org.apache.flume.conf.LogPrivacyUtil; +import org.apache.flume.instrumentation.kafka.KafkaSinkCounter; +import org.apache.flume.sink.AbstractSink; +import org.apache.flume.source.avro.AvroFlumeEvent; +import org.apache.kafka.clients.producer.Callback; +import org.apache.kafka.clients.producer.KafkaProducer; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.clients.producer.RecordMetadata; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.concurrent.Future; + +import static org.apache.flume.sink.kafka.KafkaSinkConstants.BOOTSTRAP_SERVERS_CONFIG; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.BATCH_SIZE; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.DEFAULT_BATCH_SIZE; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.BROKER_LIST_FLUME_KEY; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.DEFAULT_ACKS; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.DEFAULT_KEY_SERIALIZER; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.DEFAULT_TOPIC; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.DEFAULT_VALUE_SERIAIZER; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.KAFKA_PRODUCER_PREFIX; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.KEY_HEADER; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.OLD_BATCH_SIZE; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.REQUIRED_ACKS_FLUME_KEY; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.TOPIC_CONFIG; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.TOPIC_HEADER; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.KEY_SERIALIZER_KEY; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.MESSAGE_SERIALIZER_KEY; + + +/** + * A Flume Sink that can publish messages to Kafka. + * This is a general implementation that can be used with any Flume agent and + * a channel. + * The message can be any event and the key is a string that we read from the + * header + * For use of partitioning, use an interceptor to generate a header with the + * partition key + *

+ * Mandatory properties are: + * brokerList -- can be a partial list, but at least 2 are recommended for HA + *

+ *

+ * however, any property starting with "kafka." will be passed along to the + * Kafka producer + * Read the Kafka producer documentation to see which configurations can be used + *

+ * Optional properties + * topic - there's a default, and also - this can be in the event header if + * you need to support events with + * different topics + * batchSize - how many messages to process in one batch. Larger batches + * improve throughput while adding latency. + * requiredAcks -- 0 (unsafe), 1 (accepted by at least one broker, default), + * -1 (accepted by all brokers) + * useFlumeEventFormat - preserves event headers when serializing onto Kafka + *

+ * header properties (per event): + * topic + * key + */ +public class KafkaSink extends AbstractSink implements Configurable { + + private static final Logger logger = LoggerFactory.getLogger(KafkaSink.class); + + private final Properties kafkaProps = new Properties(); + private KafkaProducer producer; + + private String topic; + private int batchSize; + private List> kafkaFutures; + private KafkaSinkCounter counter; + private boolean useAvroEventFormat; + private String partitionHeader = null; + private Integer staticPartitionId = null; + private Optional> writer = + Optional.absent(); + private Optional> reader = + Optional.absent(); + private Optional tempOutStream = Optional + .absent(); + + //Fine to use null for initial value, Avro will create new ones if this + // is null + private BinaryEncoder encoder = null; + + + //For testing + public String getTopic() { + return topic; + } + + public int getBatchSize() { + return batchSize; + } + + @Override + public Status process() throws EventDeliveryException { + Status result = Status.READY; + Channel channel = getChannel(); + Transaction transaction = null; + Event event = null; + String eventTopic = null; + String eventKey = null; + + try { + long processedEvents = 0; + + transaction = channel.getTransaction(); + transaction.begin(); + + kafkaFutures.clear(); + long batchStartTime = System.nanoTime(); + for (; processedEvents < batchSize; processedEvents += 1) { + event = channel.take(); + + if (event == null) { + // no events available in channel + if (processedEvents == 0) { + result = Status.BACKOFF; + counter.incrementBatchEmptyCount(); + } else { + counter.incrementBatchUnderflowCount(); + } + break; + } + + byte[] eventBody = event.getBody(); + Map headers = event.getHeaders(); + + eventTopic = headers.get(TOPIC_HEADER); + if (eventTopic == null) { + eventTopic = topic; + } + eventKey = headers.get(KEY_HEADER); + if (logger.isTraceEnabled()) { + if (LogPrivacyUtil.allowLogRawData()) { + logger.trace("{Event} " + eventTopic + " : " + eventKey + " : " + + new String(eventBody, "UTF-8")); + } else { + logger.trace("{Event} " + eventTopic + " : " + eventKey); + } + } + logger.debug("event #{}", processedEvents); + + // create a message and add to buffer + long startTime = System.currentTimeMillis(); + + Integer partitionId = null; + try { + ProducerRecord record; + if (staticPartitionId != null) { + partitionId = staticPartitionId; + } + //Allow a specified header to override a static ID + if (partitionHeader != null) { + String headerVal = event.getHeaders().get(partitionHeader); + if (headerVal != null) { + partitionId = Integer.parseInt(headerVal); + } + } + if (partitionId != null) { + record = new ProducerRecord(eventTopic, partitionId, eventKey, + serializeEvent(event, useAvroEventFormat)); + } else { + record = new ProducerRecord(eventTopic, eventKey, + serializeEvent(event, useAvroEventFormat)); + } + kafkaFutures.add(producer.send(record, new SinkCallback(startTime))); + } catch (NumberFormatException ex) { + throw new EventDeliveryException("Non integer partition id specified", ex); + } catch (Exception ex) { + // N.B. The producer.send() method throws all sorts of RuntimeExceptions + // Catching Exception here to wrap them neatly in an EventDeliveryException + // which is what our consumers will expect + throw new EventDeliveryException("Could not send event", ex); + } + } + + //Prevent linger.ms from holding the batch + producer.flush(); + + // publish batch and commit. + if (processedEvents > 0) { + for (Future future : kafkaFutures) { + future.get(); + } + long endTime = System.nanoTime(); + counter.addToKafkaEventSendTimer((endTime - batchStartTime) / (1000 * 1000)); + counter.addToEventDrainSuccessCount(Long.valueOf(kafkaFutures.size())); + } + + transaction.commit(); + + } catch (Exception ex) { + String errorMsg = "Failed to publish events"; + logger.error("Failed to publish events", ex); + result = Status.BACKOFF; + if (transaction != null) { + try { + kafkaFutures.clear(); + transaction.rollback(); + counter.incrementRollbackCount(); + } catch (Exception e) { + logger.error("Transaction rollback failed", e); + throw Throwables.propagate(e); + } + } + throw new EventDeliveryException(errorMsg, ex); + } finally { + if (transaction != null) { + transaction.close(); + } + } + + return result; + } + + @Override + public synchronized void start() { + // instantiate the producer + producer = new KafkaProducer(kafkaProps); + counter.start(); + super.start(); + } + + @Override + public synchronized void stop() { + producer.close(); + counter.stop(); + logger.info("Kafka Sink {} stopped. Metrics: {}", getName(), counter); + super.stop(); + } + + + /** + * We configure the sink and generate properties for the Kafka Producer + * + * Kafka producer properties is generated as follows: + * 1. We generate a properties object with some static defaults that + * can be overridden by Sink configuration + * 2. We add the configuration users added for Kafka (parameters starting + * with .kafka. and must be valid Kafka Producer properties + * 3. We add the sink's documented parameters which can override other + * properties + * + * @param context + */ + @Override + public void configure(Context context) { + + translateOldProps(context); + + String topicStr = context.getString(TOPIC_CONFIG); + if (topicStr == null || topicStr.isEmpty()) { + topicStr = DEFAULT_TOPIC; + logger.warn("Topic was not specified. Using {} as the topic.", topicStr); + } else { + logger.info("Using the static topic {}. This may be overridden by event headers", topicStr); + } + + topic = topicStr; + + batchSize = context.getInteger(BATCH_SIZE, DEFAULT_BATCH_SIZE); + + if (logger.isDebugEnabled()) { + logger.debug("Using batch size: {}", batchSize); + } + + useAvroEventFormat = context.getBoolean(KafkaSinkConstants.AVRO_EVENT, + KafkaSinkConstants.DEFAULT_AVRO_EVENT); + + partitionHeader = context.getString(KafkaSinkConstants.PARTITION_HEADER_NAME); + staticPartitionId = context.getInteger(KafkaSinkConstants.STATIC_PARTITION_CONF); + + if (logger.isDebugEnabled()) { + logger.debug(KafkaSinkConstants.AVRO_EVENT + " set to: {}", useAvroEventFormat); + } + + kafkaFutures = new LinkedList>(); + + String bootStrapServers = context.getString(BOOTSTRAP_SERVERS_CONFIG); + if (bootStrapServers == null || bootStrapServers.isEmpty()) { + throw new ConfigurationException("Bootstrap Servers must be specified"); + } + + setProducerProps(context, bootStrapServers); + + if (logger.isDebugEnabled() && LogPrivacyUtil.allowLogPrintConfig()) { + logger.debug("Kafka producer properties: {}", kafkaProps); + } + + if (counter == null) { + counter = new KafkaSinkCounter(getName()); + } + } + + private void translateOldProps(Context ctx) { + + if (!(ctx.containsKey(TOPIC_CONFIG))) { + ctx.put(TOPIC_CONFIG, ctx.getString("topic")); + logger.warn("{} is deprecated. Please use the parameter {}", "topic", TOPIC_CONFIG); + } + + //Broker List + // If there is no value we need to check and set the old param and log a warning message + if (!(ctx.containsKey(BOOTSTRAP_SERVERS_CONFIG))) { + String brokerList = ctx.getString(BROKER_LIST_FLUME_KEY); + if (brokerList == null || brokerList.isEmpty()) { + throw new ConfigurationException("Bootstrap Servers must be specified"); + } else { + ctx.put(BOOTSTRAP_SERVERS_CONFIG, brokerList); + logger.warn("{} is deprecated. Please use the parameter {}", + BROKER_LIST_FLUME_KEY, BOOTSTRAP_SERVERS_CONFIG); + } + } + + //batch Size + if (!(ctx.containsKey(BATCH_SIZE))) { + String oldBatchSize = ctx.getString(OLD_BATCH_SIZE); + if ( oldBatchSize != null && !oldBatchSize.isEmpty()) { + ctx.put(BATCH_SIZE, oldBatchSize); + logger.warn("{} is deprecated. Please use the parameter {}", OLD_BATCH_SIZE, BATCH_SIZE); + } + } + + // Acks + if (!(ctx.containsKey(KAFKA_PRODUCER_PREFIX + ProducerConfig.ACKS_CONFIG))) { + String requiredKey = ctx.getString( + KafkaSinkConstants.REQUIRED_ACKS_FLUME_KEY); + if (!(requiredKey == null) && !(requiredKey.isEmpty())) { + ctx.put(KAFKA_PRODUCER_PREFIX + ProducerConfig.ACKS_CONFIG, requiredKey); + logger.warn("{} is deprecated. Please use the parameter {}", REQUIRED_ACKS_FLUME_KEY, + KAFKA_PRODUCER_PREFIX + ProducerConfig.ACKS_CONFIG); + } + } + + if (ctx.containsKey(KEY_SERIALIZER_KEY )) { + logger.warn("{} is deprecated. Flume now uses the latest Kafka producer which implements " + + "a different interface for serializers. Please use the parameter {}", + KEY_SERIALIZER_KEY,KAFKA_PRODUCER_PREFIX + ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG); + } + + if (ctx.containsKey(MESSAGE_SERIALIZER_KEY)) { + logger.warn("{} is deprecated. Flume now uses the latest Kafka producer which implements " + + "a different interface for serializers. Please use the parameter {}", + MESSAGE_SERIALIZER_KEY, + KAFKA_PRODUCER_PREFIX + ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG); + } + } + + private void setProducerProps(Context context, String bootStrapServers) { + kafkaProps.put(ProducerConfig.ACKS_CONFIG, DEFAULT_ACKS); + //Defaults overridden based on config + kafkaProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, DEFAULT_KEY_SERIALIZER); + kafkaProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, DEFAULT_VALUE_SERIAIZER); + kafkaProps.putAll(context.getSubProperties(KAFKA_PRODUCER_PREFIX)); + kafkaProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootStrapServers); + } + + protected Properties getKafkaProps() { + return kafkaProps; + } + + private byte[] serializeEvent(Event event, boolean useAvroEventFormat) throws IOException { + byte[] bytes; + if (useAvroEventFormat) { + if (!tempOutStream.isPresent()) { + tempOutStream = Optional.of(new ByteArrayOutputStream()); + } + if (!writer.isPresent()) { + writer = Optional.of(new SpecificDatumWriter(AvroFlumeEvent.class)); + } + tempOutStream.get().reset(); + AvroFlumeEvent e = new AvroFlumeEvent(toCharSeqMap(event.getHeaders()), + ByteBuffer.wrap(event.getBody())); + encoder = EncoderFactory.get().directBinaryEncoder(tempOutStream.get(), encoder); + writer.get().write(e, encoder); + encoder.flush(); + bytes = tempOutStream.get().toByteArray(); + } else { + bytes = event.getBody(); + } + return bytes; + } + + private static Map toCharSeqMap(Map stringMap) { + Map charSeqMap = new HashMap(); + for (Map.Entry entry : stringMap.entrySet()) { + charSeqMap.put(entry.getKey(), entry.getValue()); + } + return charSeqMap; + } + +} + +class SinkCallback implements Callback { + private static final Logger logger = LoggerFactory.getLogger(SinkCallback.class); + private long startTime; + + public SinkCallback(long startTime) { + this.startTime = startTime; + } + + public void onCompletion(RecordMetadata metadata, Exception exception) { + if (exception != null) { + logger.debug("Error sending message to Kafka {} ", exception.getMessage()); + } + + if (logger.isDebugEnabled()) { + long eventElapsedTime = System.currentTimeMillis() - startTime; + logger.debug("Acked message partition:{} ofset:{}", metadata.partition(), metadata.offset()); + logger.debug("Elapsed time for send: {}", eventElapsedTime); + } + } +} + diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSinkConstants.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSinkConstants.java new file mode 100644 index 0000000..7c819f5 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/main/java/org/apache/flume/sink/kafka/KafkaSinkConstants.java @@ -0,0 +1,63 @@ +/** + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + limitations under the License. + */ + +package org.apache.flume.sink.kafka; + +import org.apache.kafka.clients.CommonClientConfigs; + +public class KafkaSinkConstants { + + public static final String KAFKA_PREFIX = "kafka."; + public static final String KAFKA_PRODUCER_PREFIX = KAFKA_PREFIX + "producer."; + + /* Properties */ + + public static final String TOPIC_CONFIG = KAFKA_PREFIX + "topic"; + public static final String BATCH_SIZE = "flumeBatchSize"; + public static final String BOOTSTRAP_SERVERS_CONFIG = + KAFKA_PREFIX + CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG; + + public static final String KEY_HEADER = "key"; + public static final String TOPIC_HEADER = "topic"; + + public static final String AVRO_EVENT = "useFlumeEventFormat"; + public static final boolean DEFAULT_AVRO_EVENT = false; + + public static final String PARTITION_HEADER_NAME = "partitionIdHeader"; + public static final String STATIC_PARTITION_CONF = "defaultPartitionId"; + + public static final String DEFAULT_KEY_SERIALIZER = + "org.apache.kafka.common.serialization.StringSerializer"; + public static final String DEFAULT_VALUE_SERIAIZER = + "org.apache.kafka.common.serialization.ByteArraySerializer"; + + public static final int DEFAULT_BATCH_SIZE = 100; + public static final String DEFAULT_TOPIC = "default-flume-topic"; + public static final String DEFAULT_ACKS = "1"; + + /* Old Properties */ + + /* Properties */ + + public static final String OLD_BATCH_SIZE = "batchSize"; + public static final String MESSAGE_SERIALIZER_KEY = "serializer.class"; + public static final String KEY_SERIALIZER_KEY = "key.serializer.class"; + public static final String BROKER_LIST_FLUME_KEY = "brokerList"; + public static final String REQUIRED_ACKS_FLUME_KEY = "requiredAcks"; +} + diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestConstants.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestConstants.java new file mode 100644 index 0000000..6d85700 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestConstants.java @@ -0,0 +1,27 @@ +/** + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + limitations under the License. + */ + +package org.apache.flume.sink.kafka; + +public class TestConstants { + public static final String STATIC_TOPIC = "static-topic"; + public static final String CUSTOM_KEY = "custom-key"; + public static final String CUSTOM_TOPIC = "custom-topic"; + public static final String HEADER_1_VALUE = "test-avro-header"; + public static final String HEADER_1_KEY = "header1"; +} diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestKafkaSink.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestKafkaSink.java new file mode 100644 index 0000000..7eccf76 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/TestKafkaSink.java @@ -0,0 +1,550 @@ +/** + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + limitations under the License. + */ + +package org.apache.flume.sink.kafka; + +import com.google.common.base.Charsets; + +import kafka.admin.AdminUtils; +import kafka.message.MessageAndMetadata; +import kafka.utils.ZkUtils; + +import org.apache.avro.io.BinaryDecoder; +import org.apache.avro.io.DecoderFactory; +import org.apache.avro.specific.SpecificDatumReader; +import org.apache.avro.util.Utf8; +import org.apache.commons.lang.RandomStringUtils; +import org.apache.flume.Channel; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.Sink; +import org.apache.flume.Transaction; +import org.apache.flume.channel.MemoryChannel; +import org.apache.flume.conf.Configurables; +import org.apache.flume.event.EventBuilder; +import org.apache.flume.shared.kafka.test.KafkaPartitionTestUtil; +import org.apache.flume.shared.kafka.test.PartitionOption; +import org.apache.flume.shared.kafka.test.PartitionTestScenario; +import org.apache.flume.sink.kafka.util.TestUtil; +import org.apache.flume.source.avro.AvroFlumeEvent; +import org.apache.kafka.clients.CommonClientConfigs; +import org.apache.kafka.clients.producer.ProducerConfig; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +import static org.apache.flume.sink.kafka.KafkaSinkConstants.AVRO_EVENT; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.BATCH_SIZE; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.BOOTSTRAP_SERVERS_CONFIG; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.BROKER_LIST_FLUME_KEY; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.DEFAULT_KEY_SERIALIZER; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.DEFAULT_TOPIC; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.KAFKA_PREFIX; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.KAFKA_PRODUCER_PREFIX; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.OLD_BATCH_SIZE; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.REQUIRED_ACKS_FLUME_KEY; +import static org.apache.flume.sink.kafka.KafkaSinkConstants.TOPIC_CONFIG; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.fail; + +/** + * Unit tests for Kafka Sink + */ +public class TestKafkaSink { + + private static TestUtil testUtil = TestUtil.getInstance(); + private final Set usedTopics = new HashSet(); + + @BeforeClass + public static void setup() { + testUtil.prepare(); + List topics = new ArrayList(3); + topics.add(DEFAULT_TOPIC); + topics.add(TestConstants.STATIC_TOPIC); + topics.add(TestConstants.CUSTOM_TOPIC); + testUtil.initTopicList(topics); + } + + @AfterClass + public static void tearDown() { + testUtil.tearDown(); + } + + @Test + public void testKafkaProperties() { + + KafkaSink kafkaSink = new KafkaSink(); + Context context = new Context(); + context.put(KAFKA_PREFIX + TOPIC_CONFIG, ""); + context.put(KAFKA_PRODUCER_PREFIX + ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, + "override.default.serializer"); + context.put("kafka.producer.fake.property", "kafka.property.value"); + context.put("kafka.bootstrap.servers", "localhost:9092,localhost:9092"); + context.put("brokerList", "real-broker-list"); + Configurables.configure(kafkaSink, context); + + Properties kafkaProps = kafkaSink.getKafkaProps(); + + //check that we have defaults set + assertEquals(kafkaProps.getProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG), + DEFAULT_KEY_SERIALIZER); + //check that kafka properties override the default and get correct name + assertEquals(kafkaProps.getProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG), + "override.default.serializer"); + //check that any kafka-producer property gets in + assertEquals(kafkaProps.getProperty("fake.property"), + "kafka.property.value"); + //check that documented property overrides defaults + assertEquals(kafkaProps.getProperty("bootstrap.servers"), + "localhost:9092,localhost:9092"); + } + + @Test + public void testOldProperties() { + KafkaSink kafkaSink = new KafkaSink(); + Context context = new Context(); + context.put("topic", "test-topic"); + context.put(OLD_BATCH_SIZE, "300"); + context.put(BROKER_LIST_FLUME_KEY, "localhost:9092,localhost:9092"); + context.put(REQUIRED_ACKS_FLUME_KEY, "all"); + Configurables.configure(kafkaSink, context); + + Properties kafkaProps = kafkaSink.getKafkaProps(); + + assertEquals(kafkaSink.getTopic(), "test-topic"); + assertEquals(kafkaSink.getBatchSize(), 300); + assertEquals(kafkaProps.getProperty(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG), + "localhost:9092,localhost:9092"); + assertEquals(kafkaProps.getProperty(ProducerConfig.ACKS_CONFIG), "all"); + + } + + @Test + public void testDefaultTopic() { + Sink kafkaSink = new KafkaSink(); + Context context = prepareDefaultContext(); + Configurables.configure(kafkaSink, context); + Channel memoryChannel = new MemoryChannel(); + Configurables.configure(memoryChannel, context); + kafkaSink.setChannel(memoryChannel); + kafkaSink.start(); + + String msg = "default-topic-test"; + Transaction tx = memoryChannel.getTransaction(); + tx.begin(); + Event event = EventBuilder.withBody(msg.getBytes()); + memoryChannel.put(event); + tx.commit(); + tx.close(); + + try { + Sink.Status status = kafkaSink.process(); + if (status == Sink.Status.BACKOFF) { + fail("Error Occurred"); + } + } catch (EventDeliveryException ex) { + // ignore + } + + String fetchedMsg = new String((byte[]) testUtil.getNextMessageFromConsumer(DEFAULT_TOPIC) + .message()); + assertEquals(msg, fetchedMsg); + } + + @Test + public void testStaticTopic() { + Context context = prepareDefaultContext(); + // add the static topic + context.put(TOPIC_CONFIG, TestConstants.STATIC_TOPIC); + String msg = "static-topic-test"; + + try { + Sink.Status status = prepareAndSend(context, msg); + if (status == Sink.Status.BACKOFF) { + fail("Error Occurred"); + } + } catch (EventDeliveryException ex) { + // ignore + } + + String fetchedMsg = new String((byte[]) testUtil.getNextMessageFromConsumer( + TestConstants.STATIC_TOPIC).message()); + assertEquals(msg, fetchedMsg); + } + + @Test + public void testTopicAndKeyFromHeader() throws UnsupportedEncodingException { + Sink kafkaSink = new KafkaSink(); + Context context = prepareDefaultContext(); + Configurables.configure(kafkaSink, context); + Channel memoryChannel = new MemoryChannel(); + Configurables.configure(memoryChannel, context); + kafkaSink.setChannel(memoryChannel); + kafkaSink.start(); + + String msg = "test-topic-and-key-from-header"; + Map headers = new HashMap(); + headers.put("topic", TestConstants.CUSTOM_TOPIC); + headers.put("key", TestConstants.CUSTOM_KEY); + Transaction tx = memoryChannel.getTransaction(); + tx.begin(); + Event event = EventBuilder.withBody(msg.getBytes(), headers); + memoryChannel.put(event); + tx.commit(); + tx.close(); + + try { + Sink.Status status = kafkaSink.process(); + if (status == Sink.Status.BACKOFF) { + fail("Error Occurred"); + } + } catch (EventDeliveryException ex) { + // ignore + } + + MessageAndMetadata fetchedMsg = + testUtil.getNextMessageFromConsumer(TestConstants.CUSTOM_TOPIC); + + assertEquals(msg, new String((byte[]) fetchedMsg.message(), "UTF-8")); + assertEquals(TestConstants.CUSTOM_KEY, + new String((byte[]) fetchedMsg.key(), "UTF-8")); + } + + @SuppressWarnings("rawtypes") + @Test + public void testAvroEvent() throws IOException { + Sink kafkaSink = new KafkaSink(); + Context context = prepareDefaultContext(); + context.put(AVRO_EVENT, "true"); + Configurables.configure(kafkaSink, context); + Channel memoryChannel = new MemoryChannel(); + Configurables.configure(memoryChannel, context); + kafkaSink.setChannel(memoryChannel); + kafkaSink.start(); + + String msg = "test-avro-event"; + + Map headers = new HashMap(); + headers.put("topic", TestConstants.CUSTOM_TOPIC); + headers.put("key", TestConstants.CUSTOM_KEY); + headers.put(TestConstants.HEADER_1_KEY, TestConstants.HEADER_1_VALUE); + Transaction tx = memoryChannel.getTransaction(); + tx.begin(); + Event event = EventBuilder.withBody(msg.getBytes(), headers); + memoryChannel.put(event); + tx.commit(); + tx.close(); + + try { + Sink.Status status = kafkaSink.process(); + if (status == Sink.Status.BACKOFF) { + fail("Error Occurred"); + } + } catch (EventDeliveryException ex) { + // ignore + } + + MessageAndMetadata fetchedMsg = testUtil.getNextMessageFromConsumer(TestConstants.CUSTOM_TOPIC); + + ByteArrayInputStream in = new ByteArrayInputStream((byte[]) fetchedMsg.message()); + BinaryDecoder decoder = DecoderFactory.get().directBinaryDecoder(in, null); + SpecificDatumReader reader = + new SpecificDatumReader(AvroFlumeEvent.class); + + AvroFlumeEvent avroevent = reader.read(null, decoder); + + String eventBody = new String(avroevent.getBody().array(), Charsets.UTF_8); + Map eventHeaders = avroevent.getHeaders(); + + assertEquals(msg, eventBody); + assertEquals(TestConstants.CUSTOM_KEY, new String((byte[]) fetchedMsg.key(), "UTF-8")); + + assertEquals(TestConstants.HEADER_1_VALUE, + eventHeaders.get(new Utf8(TestConstants.HEADER_1_KEY)).toString()); + assertEquals(TestConstants.CUSTOM_KEY, eventHeaders.get(new Utf8("key")).toString()); + } + + @Test + public void testEmptyChannel() throws UnsupportedEncodingException, EventDeliveryException { + Sink kafkaSink = new KafkaSink(); + Context context = prepareDefaultContext(); + Configurables.configure(kafkaSink, context); + Channel memoryChannel = new MemoryChannel(); + Configurables.configure(memoryChannel, context); + kafkaSink.setChannel(memoryChannel); + kafkaSink.start(); + + Sink.Status status = kafkaSink.process(); + if (status != Sink.Status.BACKOFF) { + fail("Error Occurred"); + } + assertNull(testUtil.getNextMessageFromConsumer(DEFAULT_TOPIC)); + } + + @Test + public void testPartitionHeaderSet() throws Exception { + doPartitionHeader(PartitionTestScenario.PARTITION_ID_HEADER_ONLY); + } + + @Test + public void testPartitionHeaderNotSet() throws Exception { + doPartitionHeader(PartitionTestScenario.NO_PARTITION_HEADERS); + } + + @Test + public void testStaticPartitionAndHeaderSet() throws Exception { + doPartitionHeader(PartitionTestScenario.STATIC_HEADER_AND_PARTITION_ID); + } + + @Test + public void testStaticPartitionHeaderNotSet() throws Exception { + doPartitionHeader(PartitionTestScenario.STATIC_HEADER_ONLY); + } + + @Test + public void testPartitionHeaderMissing() throws Exception { + doPartitionErrors(PartitionOption.NOTSET); + } + + @Test(expected = org.apache.flume.EventDeliveryException.class) + public void testPartitionHeaderOutOfRange() throws Exception { + doPartitionErrors(PartitionOption.VALIDBUTOUTOFRANGE); + } + + @Test(expected = org.apache.flume.EventDeliveryException.class) + public void testPartitionHeaderInvalid() throws Exception { + doPartitionErrors(PartitionOption.NOTANUMBER); + } + + /** + * This function tests three scenarios: + * 1. PartitionOption.VALIDBUTOUTOFRANGE: An integer partition is provided, + * however it exceeds the number of partitions available on the topic. + * Expected behaviour: ChannelException thrown. + * + * 2. PartitionOption.NOTSET: The partition header is not actually set. + * Expected behaviour: Exception is not thrown because the code avoids an NPE. + * + * 3. PartitionOption.NOTANUMBER: The partition header is set, but is not an Integer. + * Expected behaviour: ChannelExeption thrown. + * + * @param option + * @throws Exception + */ + private void doPartitionErrors(PartitionOption option) throws Exception { + Sink kafkaSink = new KafkaSink(); + Context context = prepareDefaultContext(); + context.put(KafkaSinkConstants.PARTITION_HEADER_NAME, "partition-header"); + + Configurables.configure(kafkaSink, context); + Channel memoryChannel = new MemoryChannel(); + Configurables.configure(memoryChannel, context); + kafkaSink.setChannel(memoryChannel); + kafkaSink.start(); + + String topic = findUnusedTopic(); + createTopic(topic, 5); + + Transaction tx = memoryChannel.getTransaction(); + tx.begin(); + + Map headers = new HashMap(); + headers.put("topic", topic); + switch (option) { + case VALIDBUTOUTOFRANGE: + headers.put("partition-header", "9"); + break; + case NOTSET: + headers.put("wrong-header", "2"); + break; + case NOTANUMBER: + headers.put("partition-header", "not-a-number"); + break; + default: + break; + } + + Event event = EventBuilder.withBody(String.valueOf(9).getBytes(), headers); + + memoryChannel.put(event); + tx.commit(); + tx.close(); + + Sink.Status status = kafkaSink.process(); + assertEquals(Sink.Status.READY, status); + + deleteTopic(topic); + + } + + /** + * This method tests both the default behavior (usePartitionHeader=false) + * and the behaviour when the partitionId setting is used. + * Under the default behaviour, one would expect an even distribution of + * messages to partitions, however when partitionId is used we manually create + * a large skew to some partitions and then verify that this actually happened + * by reading messages directly using a Kafka Consumer. + * + * @param usePartitionHeader + * @param staticPtn + * @throws Exception + */ + private void doPartitionHeader(PartitionTestScenario scenario) throws Exception { + final int numPtns = 5; + final int numMsgs = numPtns * 10; + final Integer staticPtn = 3; + + String topic = findUnusedTopic(); + createTopic(topic, numPtns); + Context context = prepareDefaultContext(); + context.put(BATCH_SIZE, "100"); + + if (scenario == PartitionTestScenario.PARTITION_ID_HEADER_ONLY || + scenario == PartitionTestScenario.STATIC_HEADER_AND_PARTITION_ID) { + context.put(KafkaSinkConstants.PARTITION_HEADER_NAME, + KafkaPartitionTestUtil.PARTITION_HEADER); + } + if (scenario == PartitionTestScenario.STATIC_HEADER_AND_PARTITION_ID || + scenario == PartitionTestScenario.STATIC_HEADER_ONLY) { + context.put(KafkaSinkConstants.STATIC_PARTITION_CONF, staticPtn.toString()); + } + Sink kafkaSink = new KafkaSink(); + + Configurables.configure(kafkaSink, context); + Channel memoryChannel = new MemoryChannel(); + Configurables.configure(memoryChannel, context); + kafkaSink.setChannel(memoryChannel); + kafkaSink.start(); + + //Create a map of PartitionId:List according to the desired distribution + Map> partitionMap = new HashMap>(numPtns); + for (int i = 0; i < numPtns; i++) { + partitionMap.put(i, new ArrayList()); + } + Transaction tx = memoryChannel.getTransaction(); + tx.begin(); + + List orderedEvents = KafkaPartitionTestUtil.generateSkewedMessageList(scenario, numMsgs, + partitionMap, numPtns, staticPtn); + + for (Event event : orderedEvents) { + event.getHeaders().put("topic", topic); + memoryChannel.put(event); + } + + tx.commit(); + tx.close(); + + Sink.Status status = kafkaSink.process(); + assertEquals(Sink.Status.READY, status); + + Properties props = new Properties(); + props.put("bootstrap.servers", testUtil.getKafkaServerUrl()); + props.put("group.id", "group_1"); + props.put("enable.auto.commit", "true"); + props.put("auto.commit.interval.ms", "1000"); + props.put("session.timeout.ms", "30000"); + props.put("key.deserializer", + "org.apache.kafka.common.serialization.StringDeserializer"); + props.put("value.deserializer", + "org.apache.kafka.common.serialization.ByteArrayDeserializer"); + props.put("auto.offset.reset", "earliest"); + Map> resultsMap = + KafkaPartitionTestUtil.retrieveRecordsFromPartitions(topic, numPtns, props); + + KafkaPartitionTestUtil.checkResultsAgainstSkew(scenario, partitionMap, resultsMap, staticPtn, + numMsgs); + + memoryChannel.stop(); + kafkaSink.stop(); + deleteTopic(topic); + + } + + private Context prepareDefaultContext() { + // Prepares a default context with Kafka Server Properties + Context context = new Context(); + context.put(BOOTSTRAP_SERVERS_CONFIG, testUtil.getKafkaServerUrl()); + context.put(BATCH_SIZE, "1"); + return context; + } + + private Sink.Status prepareAndSend(Context context, String msg) + throws EventDeliveryException { + Sink kafkaSink = new KafkaSink(); + Configurables.configure(kafkaSink, context); + Channel memoryChannel = new MemoryChannel(); + Configurables.configure(memoryChannel, context); + kafkaSink.setChannel(memoryChannel); + kafkaSink.start(); + + Transaction tx = memoryChannel.getTransaction(); + tx.begin(); + Event event = EventBuilder.withBody(msg.getBytes()); + memoryChannel.put(event); + tx.commit(); + tx.close(); + + return kafkaSink.process(); + } + + public static void createTopic(String topicName, int numPartitions) { + int sessionTimeoutMs = 10000; + int connectionTimeoutMs = 10000; + ZkUtils zkUtils = + ZkUtils.apply(testUtil.getZkUrl(), sessionTimeoutMs, connectionTimeoutMs, false); + int replicationFactor = 1; + Properties topicConfig = new Properties(); + AdminUtils.createTopic(zkUtils, topicName, numPartitions, replicationFactor, topicConfig); + } + + public static void deleteTopic(String topicName) { + int sessionTimeoutMs = 10000; + int connectionTimeoutMs = 10000; + ZkUtils zkUtils = + ZkUtils.apply(testUtil.getZkUrl(), sessionTimeoutMs, connectionTimeoutMs, false); + AdminUtils.deleteTopic(zkUtils, topicName); + } + + public String findUnusedTopic() { + String newTopic = null; + boolean topicFound = false; + while (!topicFound) { + newTopic = RandomStringUtils.randomAlphabetic(8); + if (!usedTopics.contains(newTopic)) { + usedTopics.add(newTopic); + topicFound = true; + } + } + return newTopic; + } + +} diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaConsumer.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaConsumer.java new file mode 100644 index 0000000..d5dfbd6 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaConsumer.java @@ -0,0 +1,98 @@ +/** + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + limitations under the License. + */ + +package org.apache.flume.sink.kafka.util; + +import kafka.consumer.ConsumerConfig; +import kafka.consumer.ConsumerIterator; +import kafka.consumer.ConsumerTimeoutException; +import kafka.consumer.KafkaStream; +import kafka.javaapi.consumer.ConsumerConnector; +import kafka.message.MessageAndMetadata; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +/** + * A Kafka Consumer implementation. This uses the current thread to fetch the + * next message from the queue and doesn't use a multi threaded implementation. + * So this implements a synchronous blocking call. + * To avoid infinite waiting, a timeout is implemented to wait only for + * 10 seconds before concluding that the message will not be available. + */ +public class KafkaConsumer { + + private static final Logger logger = LoggerFactory.getLogger( + KafkaConsumer.class); + + private final ConsumerConnector consumer; + Map>> consumerMap; + + public KafkaConsumer() { + consumer = kafka.consumer.Consumer.createJavaConsumerConnector( + createConsumerConfig(TestUtil.getInstance().getZkUrl(), "group_1")); + } + + private static ConsumerConfig createConsumerConfig(String zkUrl, + String groupId) { + Properties props = new Properties(); + props.put("zookeeper.connect", zkUrl); + props.put("group.id", groupId); + props.put("zookeeper.session.timeout.ms", "1000"); + props.put("zookeeper.sync.time.ms", "200"); + props.put("auto.commit.interval.ms", "1000"); + props.put("auto.offset.reset", "smallest"); + props.put("consumer.timeout.ms","1000"); + return new ConsumerConfig(props); + } + + public void initTopicList(List topics) { + Map topicCountMap = new HashMap(); + for (String topic : topics) { + // we need only single threaded consumers + topicCountMap.put(topic, new Integer(1)); + } + consumerMap = consumer.createMessageStreams(topicCountMap); + } + + public MessageAndMetadata getNextMessage(String topic) { + List> streams = consumerMap.get(topic); + // it has only a single stream, because there is only one consumer + KafkaStream stream = streams.get(0); + final ConsumerIterator it = stream.iterator(); + int counter = 0; + try { + if (it.hasNext()) { + return it.next(); + } else { + return null; + } + } catch (ConsumerTimeoutException e) { + logger.error("0 messages available to fetch for the topic " + topic); + return null; + } + } + + public void shutdown() { + consumer.shutdown(); + } +} diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaLocal.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaLocal.java new file mode 100644 index 0000000..6d89bd3 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/KafkaLocal.java @@ -0,0 +1,51 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * limitations under the License. + */ + +package org.apache.flume.sink.kafka.util; + +import kafka.server.KafkaConfig; +import kafka.server.KafkaServerStartable; + +import java.io.IOException; +import java.util.Properties; + +/** + * A local Kafka server for running unit tests. + * Reference: https://gist.github.com/fjavieralba/7930018/ + */ +public class KafkaLocal { + + public KafkaServerStartable kafka; + public ZooKeeperLocal zookeeper; + + public KafkaLocal(Properties kafkaProperties) throws IOException, InterruptedException { + KafkaConfig kafkaConfig = KafkaConfig.fromProps(kafkaProperties); + + // start local kafka broker + kafka = new KafkaServerStartable(kafkaConfig); + } + + public void start() throws Exception { + kafka.startup(); + } + + public void stop() { + kafka.shutdown(); + } + +} \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/TestUtil.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/TestUtil.java new file mode 100644 index 0000000..6405d6c --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/TestUtil.java @@ -0,0 +1,175 @@ +/** + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + limitations under the License. + */ + +package org.apache.flume.sink.kafka.util; + +import kafka.message.MessageAndMetadata; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.BindException; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.List; +import java.util.Properties; +import java.util.Random; + +/** + * A utility class for starting/stopping Kafka Server. + */ +public class TestUtil { + + private static final Logger logger = LoggerFactory.getLogger(TestUtil.class); + private static TestUtil instance = new TestUtil(); + + private Random randPortGen = new Random(System.currentTimeMillis()); + private KafkaLocal kafkaServer; + private KafkaConsumer kafkaConsumer; + private String hostname = "localhost"; + private int kafkaLocalPort; + private int zkLocalPort; + + private TestUtil() { + init(); + } + + public static TestUtil getInstance() { + return instance; + } + + private void init() { + // get the localhost. + try { + hostname = InetAddress.getLocalHost().getHostName(); + } catch (UnknownHostException e) { + logger.warn("Error getting the value of localhost. " + + "Proceeding with 'localhost'.", e); + } + } + + private boolean startKafkaServer() { + Properties kafkaProperties = new Properties(); + Properties zkProperties = new Properties(); + + logger.info("Starting kafka server."); + try { + //load properties + zkProperties.load(Class.class.getResourceAsStream( + "/zookeeper.properties")); + + ZooKeeperLocal zookeeper; + while (true) { + //start local Zookeeper + try { + zkLocalPort = getNextPort(); + // override the Zookeeper client port with the generated one. + zkProperties.setProperty("clientPort", Integer.toString(zkLocalPort)); + zookeeper = new ZooKeeperLocal(zkProperties); + break; + } catch (BindException bindEx) { + // bind exception. port is already in use. Try a different port. + } + } + logger.info("ZooKeeper instance is successfully started on port " + + zkLocalPort); + + kafkaProperties.load(Class.class.getResourceAsStream( + "/kafka-server.properties")); + // override the Zookeeper url. + kafkaProperties.setProperty("zookeeper.connect", getZkUrl()); + while (true) { + kafkaLocalPort = getNextPort(); + // override the Kafka server port + kafkaProperties.setProperty("port", Integer.toString(kafkaLocalPort)); + kafkaServer = new KafkaLocal(kafkaProperties); + try { + kafkaServer.start(); + break; + } catch (BindException bindEx) { + // let's try another port. + } + } + logger.info("Kafka Server is successfully started on port " + + kafkaLocalPort); + return true; + + } catch (Exception e) { + logger.error("Error starting the Kafka Server.", e); + return false; + } + } + + private KafkaConsumer getKafkaConsumer() { + synchronized (this) { + if (kafkaConsumer == null) { + kafkaConsumer = new KafkaConsumer(); + } + } + return kafkaConsumer; + } + + public void initTopicList(List topics) { + getKafkaConsumer().initTopicList(topics); + } + + public MessageAndMetadata getNextMessageFromConsumer(String topic) { + return getKafkaConsumer().getNextMessage(topic); + } + + public void prepare() { + boolean startStatus = startKafkaServer(); + if (!startStatus) { + throw new RuntimeException("Error starting the server!"); + } + try { + Thread.sleep(3 * 1000); // add this sleep time to + // ensure that the server is fully started before proceeding with tests. + } catch (InterruptedException e) { + // ignore + } + getKafkaConsumer(); + logger.info("Completed the prepare phase."); + } + + public void tearDown() { + logger.info("Shutting down the Kafka Consumer."); + getKafkaConsumer().shutdown(); + try { + Thread.sleep(3 * 1000); // add this sleep time to + // ensure that the server is fully started before proceeding with tests. + } catch (InterruptedException e) { + // ignore + } + logger.info("Shutting down the kafka Server."); + kafkaServer.stop(); + logger.info("Completed the tearDown phase."); + } + + private synchronized int getNextPort() { + // generate a random port number between 49152 and 65535 + return randPortGen.nextInt(65535 - 49152) + 49152; + } + + public String getZkUrl() { + return hostname + ":" + zkLocalPort; + } + + public String getKafkaServerUrl() { + return hostname + ":" + kafkaLocalPort; + } +} diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/ZooKeeperLocal.java b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/ZooKeeperLocal.java new file mode 100644 index 0000000..35c1e47 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/java/org/apache/flume/sink/kafka/util/ZooKeeperLocal.java @@ -0,0 +1,61 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * limitations under the License. + */ + +package org.apache.flume.sink.kafka.util; + +import org.apache.zookeeper.server.ServerConfig; +import org.apache.zookeeper.server.ZooKeeperServerMain; +import org.apache.zookeeper.server.quorum.QuorumPeerConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.Properties; + +/** + * A local Zookeeper server for running unit tests. + * Reference: https://gist.github.com/fjavieralba/7930018/ + */ +public class ZooKeeperLocal { + + private static final Logger logger = LoggerFactory.getLogger(ZooKeeperLocal.class); + private ZooKeeperServerMain zooKeeperServer; + + public ZooKeeperLocal(Properties zkProperties) throws IOException { + QuorumPeerConfig quorumConfiguration = new QuorumPeerConfig(); + try { + quorumConfiguration.parseProperties(zkProperties); + } catch (Exception e) { + throw new RuntimeException(e); + } + + zooKeeperServer = new ZooKeeperServerMain(); + final ServerConfig configuration = new ServerConfig(); + configuration.readFrom(quorumConfiguration); + + new Thread() { + public void run() { + try { + zooKeeperServer.runFromConfig(configuration); + } catch (IOException e) { + logger.error("Zookeeper startup failed.", e); + } + } + }.start(); + } +} diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/kafka-server.properties b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/kafka-server.properties new file mode 100644 index 0000000..02a81e2 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/kafka-server.properties @@ -0,0 +1,118 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# see kafka.server.KafkaConfig for additional details and defaults + +############################# Server Basics ############################# + +# The id of the broker. This must be set to a unique integer for each broker. +broker.id=0 + +############################# Socket Server Settings ############################# + +# The port the socket server listens on +port=9092 + +# Hostname the broker will bind to. If not set, the server will bind to all interfaces +#host.name=localhost + +# Hostname the broker will advertise to producers and consumers. If not set, it uses the +# value for "host.name" if configured. Otherwise, it will use the value returned from +# java.net.InetAddress.getCanonicalHostName(). +#advertised.host.name= + +# The port to publish to ZooKeeper for clients to use. If this is not set, +# it will publish the same port that the broker binds to. +#advertised.port= + +# The number of threads handling network requests +num.network.threads=2 + +# The number of threads doing disk I/O +num.io.threads=8 + +# The send buffer (SO_SNDBUF) used by the socket server +socket.send.buffer.bytes=1048576 + +# The receive buffer (SO_RCVBUF) used by the socket server +socket.receive.buffer.bytes=1048576 + +# The maximum size of a request that the socket server will accept (protection against OOM) +socket.request.max.bytes=104857600 + + +############################# Log Basics ############################# + +# A comma seperated list of directories under which to store log files +log.dirs=target/kafka-logs + +# The default number of log partitions per topic. More partitions allow greater +# parallelism for consumption, but this will also result in more files across +# the brokers. +num.partitions=2 + +############################# Log Flush Policy ############################# + +# Messages are immediately written to the filesystem but by default we only fsync() to sync +# the OS cache lazily. The following configurations control the flush of data to disk. +# There are a few important trade-offs here: +# 1. Durability: Unflushed data may be lost if you are not using replication. +# 2. Latency: Very large flush intervals may lead to latency spikes when the flush does occur as there will be a lot of data to flush. +# 3. Throughput: The flush is generally the most expensive operation, and a small flush interval may lead to exceessive seeks. +# The settings below allow one to configure the flush policy to flush data after a period of time or +# every N messages (or both). This can be done globally and overridden on a per-topic basis. + +# The number of messages to accept before forcing a flush of data to disk +#log.flush.interval.messages=10000 + +# The maximum amount of time a message can sit in a log before we force a flush +#log.flush.interval.ms=1000 + +############################# Log Retention Policy ############################# + +# The following configurations control the disposal of log segments. The policy can +# be set to delete segments after a period of time, or after a given size has accumulated. +# A segment will be deleted whenever *either* of these criteria are met. Deletion always happens +# from the end of the log. + +# The minimum age of a log file to be eligible for deletion +log.retention.hours=168 + +# A size-based retention policy for logs. Segments are pruned from the log as long as the remaining +# segments don't drop below log.retention.bytes. +#log.retention.bytes=1073741824 + +# The maximum size of a log segment file. When this size is reached a new log segment will be created. +log.segment.bytes=536870912 + +# The interval at which log segments are checked to see if they can be deleted according +# to the retention policies +log.retention.check.interval.ms=60000 + +# By default the log cleaner is disabled and the log retention policy will default to just delete segments after their retention expires. +# If log.cleaner.enable=true is set the cleaner will be enabled and individual logs can then be marked for log compaction. +log.cleaner.enable=false + +############################# Zookeeper ############################# + +# Zookeeper connection string (see zookeeper docs for details). +# This is a comma separated host:port pairs, each corresponding to a zk +# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002". +# You can also append an optional chroot string to the urls to specify the +# root directory for all kafka znodes. +zookeeper.connect=localhost:2181 + +# Timeout in ms for connecting to zookeeper +zookeeper.connection.timeout.ms=1000000 diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/log4j.properties b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/log4j.properties new file mode 100644 index 0000000..b86600b --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/log4j.properties @@ -0,0 +1,78 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +kafka.logs.dir=target/logs + +log4j.rootLogger=INFO, stdout + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.kafkaAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log +log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.stateChangeAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.stateChangeAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.stateChangeAppender.File=${kafka.logs.dir}/state-change.log +log4j.appender.stateChangeAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.stateChangeAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.requestAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.requestAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log +log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.requestAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.cleanerAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.cleanerAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log +log4j.appender.cleanerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.cleanerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.controllerAppender=org.apache.log4j.DailyRollingFileAppender +log4j.appender.controllerAppender.DatePattern='.'yyyy-MM-dd-HH +log4j.appender.controllerAppender.File=${kafka.logs.dir}/controller.log +log4j.appender.controllerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.controllerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +# Turn on all our debugging info +#log4j.logger.kafka.producer.async.DefaultEventHandler=DEBUG, kafkaAppender +#log4j.logger.kafka.client.ClientUtils=DEBUG, kafkaAppender +#log4j.logger.kafka.perf=DEBUG, kafkaAppender +#log4j.logger.kafka.perf.ProducerPerformance$ProducerThread=DEBUG, kafkaAppender +#log4j.logger.org.I0Itec.zkclient.ZkClient=DEBUG +log4j.logger.kafka=INFO, kafkaAppender + +log4j.logger.kafka.network.RequestChannel$=WARN, requestAppender +log4j.additivity.kafka.network.RequestChannel$=false + +#log4j.logger.kafka.network.Processor=TRACE, requestAppender +#log4j.logger.kafka.server.KafkaApis=TRACE, requestAppender +#log4j.additivity.kafka.server.KafkaApis=false +log4j.logger.kafka.request.logger=WARN, requestAppender +log4j.additivity.kafka.request.logger=false + +log4j.logger.kafka.controller=TRACE, controllerAppender +log4j.additivity.kafka.controller=false + +log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender +log4j.additivity.kafka.log.LogCleaner=false + +log4j.logger.state.change.logger=TRACE, stateChangeAppender +log4j.additivity.state.change.logger=false diff --git a/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/zookeeper.properties b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/zookeeper.properties new file mode 100644 index 0000000..89e1b5e --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-kafka-sink/src/test/resources/zookeeper.properties @@ -0,0 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# the directory where the snapshot is stored. +dataDir=target +# the port at which the clients will connect +clientPort=2181 +# disable the per-ip limit on the number of connections since this is a non-production config +maxClientCnxns=0 \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/README.md b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/README.md new file mode 100644 index 0000000..ede3ab7 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/README.md @@ -0,0 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Flume Morphline Solr Sink + +This module contains a Flume Morphline Solr Sink that extracts search documents from Flume events, transforms them and loads them in Near Real Time into Apache Solr, typically a SolrCloud. This sink is intended to be used alongside the HdfsSink. It is designed to process not just structured data, but also arbitrary raw data, including data from many heterogeneous data sources. diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml new file mode 100644 index 0000000..055c2c2 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml @@ -0,0 +1,139 @@ + + + + 4.0.0 + + + flume-ng-sinks + org.apache.flume + 1.7.0 + + + org.apache.flume.flume-ng-sinks + flume-ng-morphline-solr-sink + 1.7.0 + Flume NG Morphline Solr Sink + + + UTF-8 + 4.3.0 + 4.3.0 + 1.6.1 + 2.12.4 + + + + + + org.apache.flume + flume-ng-core + + + + org.slf4j + slf4j-api + + + + org.kitesdk + kite-morphlines-all + ${kite.version} + + + org.apache.hadoop + hadoop-common + + + pom + true + + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + provided + + + + org.apache.solr + solr-test-framework + ${solr.version} + test + + + org.slf4j + slf4j-jdk14 + + + + + + org.kitesdk + kite-morphlines-solr-core + ${kite.version} + test-jar + test + + + + junit + junit + test + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${surefire.version} + + -Dtests.locale=en_us + true + + + + + + + + org.apache.rat + apache-rat-plugin + + + test.rat + test + + check + + + + src/test/resources/** + + + + + + + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobDeserializer.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobDeserializer.java new file mode 100644 index 0000000..095f889 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobDeserializer.java @@ -0,0 +1,162 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.IOException; +import java.util.List; + +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.annotations.InterfaceAudience; +import org.apache.flume.annotations.InterfaceStability; +import org.apache.flume.conf.ConfigurationException; +import org.apache.flume.event.EventBuilder; +import org.apache.flume.serialization.EventDeserializer; +import org.apache.flume.serialization.ResettableInputStream; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.common.collect.Lists; + +/** + * A deserializer that reads a Binary Large Object (BLOB) per event, typically + * one BLOB per file; To be used in conjunction with Flume SpoolDirectorySource. + *

+ * Note that this approach is not suitable for very large objects because it + * buffers up the entire BLOB. + */ +@InterfaceAudience.Private +@InterfaceStability.Evolving +public class BlobDeserializer implements EventDeserializer { + + private ResettableInputStream in; + private final int maxBlobLength; + private volatile boolean isOpen; + + public static final String MAX_BLOB_LENGTH_KEY = "maxBlobLength"; + public static final int MAX_BLOB_LENGTH_DEFAULT = 100 * 1000 * 1000; + + private static final int DEFAULT_BUFFER_SIZE = 1024 * 8; + private static final Logger LOGGER = LoggerFactory.getLogger(BlobDeserializer.class); + + protected BlobDeserializer(Context context, ResettableInputStream in) { + this.in = in; + this.maxBlobLength = context.getInteger(MAX_BLOB_LENGTH_KEY, MAX_BLOB_LENGTH_DEFAULT); + if (this.maxBlobLength <= 0) { + throw new ConfigurationException("Configuration parameter " + MAX_BLOB_LENGTH_KEY + + " must be greater than zero: " + maxBlobLength); + } + this.isOpen = true; + } + + /** + * Reads a BLOB from a file and returns an event + * @return Event containing a BLOB + * @throws IOException + */ + @SuppressWarnings("resource") + @Override + public Event readEvent() throws IOException { + ensureOpen(); + ByteArrayOutputStream blob = null; + byte[] buf = new byte[Math.min(maxBlobLength, DEFAULT_BUFFER_SIZE)]; + int blobLength = 0; + int n = 0; + while ((n = in.read(buf, 0, Math.min(buf.length, maxBlobLength - blobLength))) != -1) { + if (blob == null) { + blob = new ByteArrayOutputStream(n); + } + blob.write(buf, 0, n); + blobLength += n; + if (blobLength >= maxBlobLength) { + LOGGER.warn("File length exceeds maxBlobLength ({}), truncating BLOB event!", + maxBlobLength); + break; + } + } + + if (blob == null) { + return null; + } else { + return EventBuilder.withBody(blob.toByteArray()); + } + } + + /** + * Batch BLOB read + * @param numEvents Maximum number of events to return. + * @return List of events containing read BLOBs + * @throws IOException + */ + @Override + public List readEvents(int numEvents) throws IOException { + ensureOpen(); + List events = Lists.newLinkedList(); + for (int i = 0; i < numEvents; i++) { + Event event = readEvent(); + if (event != null) { + events.add(event); + } else { + break; + } + } + return events; + } + + @Override + public void mark() throws IOException { + ensureOpen(); + in.mark(); + } + + @Override + public void reset() throws IOException { + ensureOpen(); + in.reset(); + } + + @Override + public void close() throws IOException { + if (isOpen) { + reset(); + in.close(); + isOpen = false; + } + } + + private void ensureOpen() { + if (!isOpen) { + throw new IllegalStateException("Serializer has been closed"); + } + } + + + /////////////////////////////////////////////////////////////////////////////// + // Nested classes: + /////////////////////////////////////////////////////////////////////////////// + /** Builder implementations MUST have a public no-arg constructor */ + public static class Builder implements EventDeserializer.Builder { + + @Override + public BlobDeserializer build(Context context, ResettableInputStream in) { + return new BlobDeserializer(context, in); + } + + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobHandler.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobHandler.java new file mode 100644 index 0000000..fe98746 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobHandler.java @@ -0,0 +1,129 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.InputStream; +import java.util.Collections; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.conf.ConfigurationException; +import org.apache.flume.conf.LogPrivacyUtil; +import org.apache.flume.event.EventBuilder; +import org.apache.flume.source.http.HTTPSourceHandler; +import org.apache.tika.metadata.Metadata; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * BlobHandler for HTTPSource that returns event that contains the request + * parameters as well as the Binary Large Object (BLOB) uploaded with this + * request. + *

+ * Note that this approach is not suitable for very large objects because it + * buffers up the entire BLOB. + *

+ * Example client usage: + *

+ * curl --data-binary @sample-statuses-20120906-141433-medium.avro 'http://127.0.0.1:5140?resourceName=sample-statuses-20120906-141433-medium.avro' --header 'Content-Type:application/octet-stream' --verbose
+ * 
+ */ +public class BlobHandler implements HTTPSourceHandler { + + private int maxBlobLength = MAX_BLOB_LENGTH_DEFAULT; + + public static final String MAX_BLOB_LENGTH_KEY = "maxBlobLength"; + public static final int MAX_BLOB_LENGTH_DEFAULT = 100 * 1000 * 1000; + + private static final int DEFAULT_BUFFER_SIZE = 1024 * 8; + private static final Logger LOGGER = LoggerFactory.getLogger(BlobHandler.class); + + public BlobHandler() { + } + + @Override + public void configure(Context context) { + this.maxBlobLength = context.getInteger(MAX_BLOB_LENGTH_KEY, MAX_BLOB_LENGTH_DEFAULT); + if (this.maxBlobLength <= 0) { + throw new ConfigurationException("Configuration parameter " + MAX_BLOB_LENGTH_KEY + + " must be greater than zero: " + maxBlobLength); + } + } + + @SuppressWarnings("resource") + @Override + public List getEvents(HttpServletRequest request) throws Exception { + Map headers = getHeaders(request); + InputStream in = request.getInputStream(); + try { + ByteArrayOutputStream blob = null; + byte[] buf = new byte[Math.min(maxBlobLength, DEFAULT_BUFFER_SIZE)]; + int blobLength = 0; + int n = 0; + while ((n = in.read(buf, 0, Math.min(buf.length, maxBlobLength - blobLength))) != -1) { + if (blob == null) { + blob = new ByteArrayOutputStream(n); + } + blob.write(buf, 0, n); + blobLength += n; + if (blobLength >= maxBlobLength) { + LOGGER.warn("Request length exceeds maxBlobLength ({}), truncating BLOB event!", + maxBlobLength); + break; + } + } + + byte[] array = blob != null ? blob.toByteArray() : new byte[0]; + Event event = EventBuilder.withBody(array, headers); + if (LOGGER.isDebugEnabled() && LogPrivacyUtil.allowLogRawData()) { + LOGGER.debug("blobEvent: {}", event); + } + return Collections.singletonList(event); + } finally { + in.close(); + } + } + + private Map getHeaders(HttpServletRequest request) { + if (LOGGER.isDebugEnabled() && LogPrivacyUtil.allowLogRawData()) { + Map requestHeaders = new HashMap(); + Enumeration iter = request.getHeaderNames(); + while (iter.hasMoreElements()) { + String name = (String) iter.nextElement(); + requestHeaders.put(name, request.getHeader(name)); + } + LOGGER.debug("requestHeaders: {}", requestHeaders); + } + Map headers = new HashMap(); + if (request.getContentType() != null) { + headers.put(Metadata.CONTENT_TYPE, request.getContentType()); + } + Enumeration iter = request.getParameterNames(); + while (iter.hasMoreElements()) { + String name = (String) iter.nextElement(); + headers.put(name, request.getParameter(name)); + } + return headers; + } +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandler.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandler.java new file mode 100644 index 0000000..bb5191d --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandler.java @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.IOException; + +import org.apache.flume.Event; +import org.apache.flume.conf.Configurable; + +/** + * Interface to load Flume events into Solr + */ +public interface MorphlineHandler extends Configurable { + + /** Begins a transaction */ + public void beginTransaction(); + + /** Loads the given event into Solr */ + public void process(Event event); + + /** + * Sends any outstanding documents to Solr and waits for a positive + * or negative ack (i.e. exception). Depending on the outcome the caller + * should then commit or rollback the current flume transaction + * correspondingly. + * + * @throws IOException + * If there is a low-level I/O error. + */ + public void commitTransaction(); + + /** + * Performs a rollback of all non-committed documents pending. + *

+ * Note that this is not a true rollback as in databases. Content you have previously added to + * Solr may have already been committed due to autoCommit, buffer full, other client performing a + * commit etc. So this is only a best-effort rollback. + * + * @throws IOException + * If there is a low-level I/O error. + */ + public void rollbackTransaction(); + + /** Releases allocated resources */ + public void stop(); + + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandlerImpl.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandlerImpl.java new file mode 100644 index 0000000..d877814 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandlerImpl.java @@ -0,0 +1,163 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.File; +import java.util.Map.Entry; + +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.kitesdk.morphline.api.Command; +import org.kitesdk.morphline.api.MorphlineCompilationException; +import org.kitesdk.morphline.api.MorphlineContext; +import org.kitesdk.morphline.api.Record; +import org.kitesdk.morphline.base.Compiler; +import org.kitesdk.morphline.base.FaultTolerance; +import org.kitesdk.morphline.base.Fields; +import org.kitesdk.morphline.base.Metrics; +import org.kitesdk.morphline.base.Notifications; +import com.codahale.metrics.Meter; +import com.codahale.metrics.MetricRegistry; +import com.codahale.metrics.SharedMetricRegistries; +import com.codahale.metrics.Timer; +import com.typesafe.config.Config; +import com.typesafe.config.ConfigFactory; + +/** + * A {@link MorphlineHandler} that processes it's events using a morphline {@link Command} chain. + */ +public class MorphlineHandlerImpl implements MorphlineHandler { + + private MorphlineContext morphlineContext; + private Command morphline; + private Command finalChild; + private String morphlineFileAndId; + + private Timer mappingTimer; + private Meter numRecords; + private Meter numFailedRecords; + private Meter numExceptionRecords; + + public static final String MORPHLINE_FILE_PARAM = "morphlineFile"; + public static final String MORPHLINE_ID_PARAM = "morphlineId"; + + /** + * Morphline variables can be passed from flume.conf to the morphline, e.g.: + * agent.sinks.solrSink.morphlineVariable.zkHost=127.0.0.1:2181/solr + */ + public static final String MORPHLINE_VARIABLE_PARAM = "morphlineVariable"; + + private static final Logger LOG = LoggerFactory.getLogger(MorphlineHandlerImpl.class); + + // For test injection + void setMorphlineContext(MorphlineContext morphlineContext) { + this.morphlineContext = morphlineContext; + } + + // for interceptor + void setFinalChild(Command finalChild) { + this.finalChild = finalChild; + } + + @Override + public void configure(Context context) { + String morphlineFile = context.getString(MORPHLINE_FILE_PARAM); + String morphlineId = context.getString(MORPHLINE_ID_PARAM); + if (morphlineFile == null || morphlineFile.trim().length() == 0) { + throw new MorphlineCompilationException("Missing parameter: " + MORPHLINE_FILE_PARAM, null); + } + morphlineFileAndId = morphlineFile + "@" + morphlineId; + + if (morphlineContext == null) { + FaultTolerance faultTolerance = new FaultTolerance( + context.getBoolean(FaultTolerance.IS_PRODUCTION_MODE, false), + context.getBoolean(FaultTolerance.IS_IGNORING_RECOVERABLE_EXCEPTIONS, false), + context.getString(FaultTolerance.RECOVERABLE_EXCEPTION_CLASSES)); + + morphlineContext = new MorphlineContext.Builder() + .setExceptionHandler(faultTolerance) + .setMetricRegistry(SharedMetricRegistries.getOrCreate(morphlineFileAndId)) + .build(); + } + + Config override = ConfigFactory.parseMap( + context.getSubProperties(MORPHLINE_VARIABLE_PARAM + ".")); + morphline = new Compiler().compile( + new File(morphlineFile), morphlineId, morphlineContext, finalChild, override); + + this.mappingTimer = morphlineContext.getMetricRegistry().timer( + MetricRegistry.name("morphline.app", Metrics.ELAPSED_TIME)); + this.numRecords = morphlineContext.getMetricRegistry().meter( + MetricRegistry.name("morphline.app", Metrics.NUM_RECORDS)); + this.numFailedRecords = morphlineContext.getMetricRegistry().meter( + MetricRegistry.name("morphline.app", "numFailedRecords")); + this.numExceptionRecords = morphlineContext.getMetricRegistry().meter( + MetricRegistry.name("morphline.app", "numExceptionRecords")); + } + + @Override + public void process(Event event) { + numRecords.mark(); + Timer.Context timerContext = mappingTimer.time(); + try { + Record record = new Record(); + for (Entry entry : event.getHeaders().entrySet()) { + record.put(entry.getKey(), entry.getValue()); + } + byte[] bytes = event.getBody(); + if (bytes != null && bytes.length > 0) { + record.put(Fields.ATTACHMENT_BODY, bytes); + } + try { + Notifications.notifyStartSession(morphline); + if (!morphline.process(record)) { + numFailedRecords.mark(); + LOG.warn("Morphline {} failed to process record: {}", morphlineFileAndId, record); + } + } catch (RuntimeException t) { + numExceptionRecords.mark(); + morphlineContext.getExceptionHandler().handleException(t, record); + } + } finally { + timerContext.stop(); + } + } + + @Override + public void beginTransaction() { + Notifications.notifyBeginTransaction(morphline); + } + + @Override + public void commitTransaction() { + Notifications.notifyCommitTransaction(morphline); + } + + @Override + public void rollbackTransaction() { + Notifications.notifyRollbackTransaction(morphline); + } + + @Override + public void stop() { + Notifications.notifyShutdown(morphline); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineInterceptor.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineInterceptor.java new file mode 100644 index 0000000..3b94133 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineInterceptor.java @@ -0,0 +1,242 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; + +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.FlumeException; +import org.apache.flume.event.EventBuilder; +import org.apache.flume.interceptor.Interceptor; +import org.kitesdk.morphline.api.Command; +import org.kitesdk.morphline.api.Record; +import org.kitesdk.morphline.base.Fields; + +import com.google.common.base.Preconditions; +import com.google.common.io.ByteStreams; + +/** + * Flume Interceptor that executes a morphline on events that are intercepted. + * + * Currently, there is a restriction in that the morphline must not generate more than one output + * record for each input event. + */ +public class MorphlineInterceptor implements Interceptor { + + private final Context context; + private final Queue pool = new ConcurrentLinkedQueue<>(); + + protected MorphlineInterceptor(Context context) { + Preconditions.checkNotNull(context); + this.context = context; + // fail fast on morphline compilation exception + returnToPool(new LocalMorphlineInterceptor(context)); + } + + @Override + public void initialize() { + } + + @Override + public void close() { + LocalMorphlineInterceptor interceptor; + while ((interceptor = pool.poll()) != null) { + interceptor.close(); + } + } + + @Override + public List intercept(List events) { + LocalMorphlineInterceptor interceptor = borrowFromPool(); + List results = interceptor.intercept(events); + returnToPool(interceptor); + return results; + } + + @Override + public Event intercept(Event event) { + LocalMorphlineInterceptor interceptor = borrowFromPool(); + Event result = interceptor.intercept(event); + returnToPool(interceptor); + return result; + } + + private void returnToPool(LocalMorphlineInterceptor interceptor) { + pool.add(interceptor); + } + + private LocalMorphlineInterceptor borrowFromPool() { + LocalMorphlineInterceptor interceptor = pool.poll(); + if (interceptor == null) { + interceptor = new LocalMorphlineInterceptor(context); + } + return interceptor; + } + + + /////////////////////////////////////////////////////////////////////////////// + // Nested classes: + /////////////////////////////////////////////////////////////////////////////// + /** Builder implementations MUST have a public no-arg constructor */ + public static class Builder implements Interceptor.Builder { + + private Context context; + + public Builder() { + } + + @Override + public MorphlineInterceptor build() { + return new MorphlineInterceptor(context); + } + + @Override + public void configure(Context context) { + this.context = context; + } + + } + + + /////////////////////////////////////////////////////////////////////////////// + // Nested classes: + /////////////////////////////////////////////////////////////////////////////// + private static final class LocalMorphlineInterceptor implements Interceptor { + + private final MorphlineHandlerImpl morphline; + private final Collector collector; + + protected LocalMorphlineInterceptor(Context context) { + this.morphline = new MorphlineHandlerImpl(); + this.collector = new Collector(); + this.morphline.setFinalChild(collector); + this.morphline.configure(context); + } + + @Override + public void initialize() { + } + + @Override + public void close() { + morphline.stop(); + } + + @Override + public List intercept(List events) { + List results = new ArrayList(events.size()); + for (Event event : events) { + event = intercept(event); + if (event != null) { + results.add(event); + } + } + return results; + } + + @Override + public Event intercept(Event event) { + collector.reset(); + morphline.process(event); + List results = collector.getRecords(); + if (results.size() == 0) { + return null; + } + if (results.size() > 1) { + throw new FlumeException(getClass().getName() + + " must not generate more than one output record per input event"); + } + Event result = toEvent(results.get(0)); + return result; + } + + private Event toEvent(Record record) { + Map headers = new HashMap(); + Map> recordMap = record.getFields().asMap(); + byte[] body = null; + for (Map.Entry> entry : recordMap.entrySet()) { + if (entry.getValue().size() > 1) { + throw new FlumeException(getClass().getName() + + " must not generate more than one output value per record field"); + } + assert entry.getValue().size() != 0; // guava guarantees that + Object firstValue = entry.getValue().iterator().next(); + if (Fields.ATTACHMENT_BODY.equals(entry.getKey())) { + if (firstValue instanceof byte[]) { + body = (byte[]) firstValue; + } else if (firstValue instanceof InputStream) { + try { + body = ByteStreams.toByteArray((InputStream) firstValue); + } catch (IOException e) { + throw new FlumeException(e); + } + } else { + throw new FlumeException(getClass().getName() + + " must non generate attachments that are not a byte[] or InputStream"); + } + } else { + headers.put(entry.getKey(), firstValue.toString()); + } + } + return EventBuilder.withBody(body, headers); + } + } + + + /////////////////////////////////////////////////////////////////////////////// + // Nested classes: + /////////////////////////////////////////////////////////////////////////////// + private static final class Collector implements Command { + + private final List results = new ArrayList(); + + public List getRecords() { + return results; + } + + public void reset() { + results.clear(); + } + + @Override + public Command getParent() { + return null; + } + + @Override + public void notify(Record notification) { + } + + @Override + public boolean process(Record record) { + Preconditions.checkNotNull(record); + results.add(record); + return true; + } + + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSink.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSink.java new file mode 100644 index 0000000..0917d39 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSink.java @@ -0,0 +1,204 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import org.apache.flume.Channel; +import org.apache.flume.ChannelException; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.Transaction; +import org.apache.flume.conf.Configurable; +import org.apache.flume.conf.ConfigurationException; +import org.apache.flume.conf.LogPrivacyUtil; +import org.apache.flume.instrumentation.SinkCounter; +import org.apache.flume.sink.AbstractSink; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.kitesdk.morphline.api.Command; + +/** + * Flume sink that extracts search documents from Flume events and processes them using a morphline + * {@link Command} chain. + */ +public class MorphlineSink extends AbstractSink implements Configurable { + + private int maxBatchSize = 1000; + private long maxBatchDurationMillis = 1000; + private String handlerClass; + private MorphlineHandler handler; + private Context context; + private SinkCounter sinkCounter; + + public static final String BATCH_SIZE = "batchSize"; + public static final String BATCH_DURATION_MILLIS = "batchDurationMillis"; + public static final String HANDLER_CLASS = "handlerClass"; + + private static final Logger LOGGER = LoggerFactory.getLogger(MorphlineSink.class); + + public MorphlineSink() { + this(null); + } + + /** For testing only */ + protected MorphlineSink(MorphlineHandler handler) { + this.handler = handler; + } + + @Override + public void configure(Context context) { + this.context = context; + maxBatchSize = context.getInteger(BATCH_SIZE, maxBatchSize); + maxBatchDurationMillis = context.getLong(BATCH_DURATION_MILLIS, maxBatchDurationMillis); + handlerClass = context.getString(HANDLER_CLASS, MorphlineHandlerImpl.class.getName()); + if (sinkCounter == null) { + sinkCounter = new SinkCounter(getName()); + } + } + + /** + * Returns the maximum number of events to take per flume transaction; + * override to customize + */ + private int getMaxBatchSize() { + return maxBatchSize; + } + + /** Returns the maximum duration per flume transaction; override to customize */ + private long getMaxBatchDurationMillis() { + return maxBatchDurationMillis; + } + + @Override + public synchronized void start() { + LOGGER.info("Starting Morphline Sink {} ...", this); + sinkCounter.start(); + if (handler == null) { + MorphlineHandler tmpHandler; + try { + tmpHandler = (MorphlineHandler) Class.forName(handlerClass).newInstance(); + } catch (Exception e) { + throw new ConfigurationException(e); + } + tmpHandler.configure(context); + handler = tmpHandler; + } + super.start(); + LOGGER.info("Morphline Sink {} started.", getName()); + } + + @Override + public synchronized void stop() { + LOGGER.info("Morphline Sink {} stopping...", getName()); + try { + if (handler != null) { + handler.stop(); + } + sinkCounter.stop(); + LOGGER.info("Morphline Sink {} stopped. Metrics: {}, {}", getName(), sinkCounter); + } finally { + super.stop(); + } + } + + @Override + public Status process() throws EventDeliveryException { + int batchSize = getMaxBatchSize(); + long batchEndTime = System.currentTimeMillis() + getMaxBatchDurationMillis(); + Channel myChannel = getChannel(); + Transaction txn = myChannel.getTransaction(); + txn.begin(); + boolean isMorphlineTransactionCommitted = true; + try { + int numEventsTaken = 0; + handler.beginTransaction(); + isMorphlineTransactionCommitted = false; + + // repeatedly take and process events from the Flume queue + for (int i = 0; i < batchSize; i++) { + Event event = myChannel.take(); + if (event == null) { + break; + } + sinkCounter.incrementEventDrainAttemptCount(); + numEventsTaken++; + if (LOGGER.isTraceEnabled() && LogPrivacyUtil.allowLogRawData()) { + LOGGER.trace("Flume event arrived {}", event); + } + + //StreamEvent streamEvent = createStreamEvent(event); + handler.process(event); + if (System.currentTimeMillis() >= batchEndTime) { + break; + } + } + + // update metrics + if (numEventsTaken == 0) { + sinkCounter.incrementBatchEmptyCount(); + } + if (numEventsTaken < batchSize) { + sinkCounter.incrementBatchUnderflowCount(); + } else { + sinkCounter.incrementBatchCompleteCount(); + } + handler.commitTransaction(); + isMorphlineTransactionCommitted = true; + txn.commit(); + sinkCounter.addToEventDrainSuccessCount(numEventsTaken); + return numEventsTaken == 0 ? Status.BACKOFF : Status.READY; + } catch (Throwable t) { + // Ooops - need to rollback and back off + LOGGER.error("Morphline Sink " + getName() + ": Unable to process event from channel " + + myChannel.getName() + ". Exception follows.", t); + try { + if (!isMorphlineTransactionCommitted) { + handler.rollbackTransaction(); + } + } catch (Throwable t2) { + LOGGER.error("Morphline Sink " + getName() + + ": Unable to rollback morphline transaction. Exception follows.", t2); + } finally { + try { + txn.rollback(); + } catch (Throwable t4) { + LOGGER.error("Morphline Sink " + getName() + ": Unable to rollback Flume transaction. " + + "Exception follows.", t4); + } + } + + if (t instanceof Error) { + throw (Error) t; // rethrow original exception + } else if (t instanceof ChannelException) { + return Status.BACKOFF; + } else { + throw new EventDeliveryException("Failed to send events", t); // rethrow and backoff + } + } finally { + txn.close(); + } + } + + @Override + public String toString() { + int i = getClass().getName().lastIndexOf('.') + 1; + String shortClassName = getClass().getName().substring(i); + return getName() + " (" + shortClassName + ")"; + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSolrSink.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSolrSink.java new file mode 100644 index 0000000..e403b10 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSolrSink.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import org.apache.flume.Context; + +import org.kitesdk.morphline.api.Command; +import org.kitesdk.morphline.base.FaultTolerance; + + +/** + * Flume sink that extracts search documents from Flume events, processes them using a morphline + * {@link Command} chain, and loads them into Apache Solr. + */ +public class MorphlineSolrSink extends MorphlineSink { + + public MorphlineSolrSink() { + super(); + } + + /** For testing only */ + protected MorphlineSolrSink(MorphlineHandler handler) { + super(handler); + } + + @Override + public void configure(Context context) { + if (context.getString(FaultTolerance.RECOVERABLE_EXCEPTION_CLASSES) == null) { + context.put(FaultTolerance.RECOVERABLE_EXCEPTION_CLASSES, + "org.apache.solr.client.solrj.SolrServerException"); + } + super.configure(context); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/UUIDInterceptor.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/UUIDInterceptor.java new file mode 100644 index 0000000..22d5347 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/UUIDInterceptor.java @@ -0,0 +1,115 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.interceptor.Interceptor; + +/** + * Flume Interceptor that sets a universally unique identifier on all events + * that are intercepted. By default this event header is named "id". + */ +public class UUIDInterceptor implements Interceptor { + + private String headerName; + private boolean preserveExisting; + private String prefix; + + public static final String HEADER_NAME = "headerName"; + public static final String PRESERVE_EXISTING_NAME = "preserveExisting"; + public static final String PREFIX_NAME = "prefix"; + + protected UUIDInterceptor(Context context) { + headerName = context.getString(HEADER_NAME, "id"); + preserveExisting = context.getBoolean(PRESERVE_EXISTING_NAME, true); + prefix = context.getString(PREFIX_NAME, ""); + } + + @Override + public void initialize() { + } + + protected String getPrefix() { + return prefix; + } + + protected String generateUUID() { + return getPrefix() + UUID.randomUUID().toString(); + } + + protected boolean isMatch(Event event) { + return true; + } + + @Override + public Event intercept(Event event) { + Map headers = event.getHeaders(); + if (preserveExisting && headers.containsKey(headerName)) { + // we must preserve the existing id + } else if (isMatch(event)) { + headers.put(headerName, generateUUID()); + } + return event; + } + + @Override + public List intercept(List events) { + List results = new ArrayList(events.size()); + for (Event event : events) { + event = intercept(event); + if (event != null) { + results.add(event); + } + } + return results; + } + + @Override + public void close() { + } + + + /////////////////////////////////////////////////////////////////////////////// + // Nested classes: + /////////////////////////////////////////////////////////////////////////////// + /** Builder implementations MUST have a public no-arg constructor */ + public static class Builder implements Interceptor.Builder { + + private Context context; + + public Builder() { + } + + @Override + public UUIDInterceptor build() { + return new UUIDInterceptor(context); + } + + @Override + public void configure(Context context) { + this.context = context; + } + + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/EmbeddedSource.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/EmbeddedSource.java new file mode 100644 index 0000000..b30fece --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/EmbeddedSource.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.util.List; + +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.EventDrivenSource; +import org.apache.flume.Sink; +import org.apache.flume.source.AbstractSource; + +class EmbeddedSource extends AbstractSource implements EventDrivenSource { + + private Sink sink; + + public EmbeddedSource(Sink sink) { + this.sink = sink; + } + + public void load(Event event) throws EventDeliveryException { + getChannelProcessor().processEvent(event); + sink.process(); + } + + public void load(List events) throws EventDeliveryException { + getChannelProcessor().processEventBatch(events); + sink.process(); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/FlumeHttpServletRequestWrapper.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/FlumeHttpServletRequestWrapper.java new file mode 100644 index 0000000..9711a3a --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/FlumeHttpServletRequestWrapper.java @@ -0,0 +1,321 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.security.Principal; +import java.util.Collections; +import java.util.Enumeration; +import java.util.Locale; +import java.util.Map; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletInputStream; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +class FlumeHttpServletRequestWrapper implements HttpServletRequest { + + private ServletInputStream stream; + private String charset; + + public FlumeHttpServletRequestWrapper(final byte[] data) { + stream = new ServletInputStream() { + private final InputStream in = new ByteArrayInputStream(data); + @Override + public int read() throws IOException { + return in.read(); + } + }; + } + + @Override + public String getAuthType() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Cookie[] getCookies() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public long getDateHeader(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getHeader(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Enumeration getHeaders(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Enumeration getHeaderNames() { + return Collections.enumeration(Collections.EMPTY_LIST); + } + + @Override + public int getIntHeader(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getMethod() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getPathInfo() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getPathTranslated() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getContextPath() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getQueryString() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getRemoteUser() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isUserInRole(String role) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Principal getUserPrincipal() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getRequestedSessionId() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getRequestURI() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public StringBuffer getRequestURL() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getServletPath() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public HttpSession getSession(boolean create) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public HttpSession getSession() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isRequestedSessionIdValid() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isRequestedSessionIdFromCookie() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isRequestedSessionIdFromURL() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isRequestedSessionIdFromUrl() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Object getAttribute(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Enumeration getAttributeNames() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getCharacterEncoding() { + return charset; + } + + @Override + public void setCharacterEncoding(String env) throws UnsupportedEncodingException { + this.charset = env; + } + + @Override + public int getContentLength() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getContentType() { + return null; + } + + @Override + public ServletInputStream getInputStream() throws IOException { + return stream; + } + + @Override + public String getParameter(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Enumeration getParameterNames() { + return Collections.enumeration(Collections.EMPTY_LIST); + } + + @Override + public String[] getParameterValues(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Map getParameterMap() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getProtocol() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getScheme() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getServerName() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public int getServerPort() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public BufferedReader getReader() throws IOException { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getRemoteAddr() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getRemoteHost() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void setAttribute(String name, Object o) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public void removeAttribute(String name) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Locale getLocale() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public Enumeration getLocales() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public boolean isSecure() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public RequestDispatcher getRequestDispatcher(String path) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getRealPath(String path) { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public int getRemotePort() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getLocalName() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public String getLocalAddr() { + throw new UnsupportedOperationException("Not supported yet."); + } + + @Override + public int getLocalPort() { + throw new UnsupportedOperationException("Not supported yet."); + } +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/ResettableTestStringInputStream.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/ResettableTestStringInputStream.java new file mode 100644 index 0000000..e6ee9b9 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/ResettableTestStringInputStream.java @@ -0,0 +1,89 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.IOException; + +import org.apache.flume.serialization.ResettableInputStream; + +class ResettableTestStringInputStream extends ResettableInputStream { + + private String str; + private int markPos = 0; + private int curPos = 0; + + /** + * Warning: This test class does not handle character/byte conversion at all! + * @param str String to use for testing + */ + public ResettableTestStringInputStream(String str) { + this.str = str; + } + + @Override + public int readChar() throws IOException { + throw new UnsupportedOperationException("This test class doesn't return " + + "strings!"); + } + + @Override + public void mark() throws IOException { + markPos = curPos; + } + + @Override + public void reset() throws IOException { + curPos = markPos; + } + + @Override + public void seek(long position) throws IOException { + throw new UnsupportedOperationException("Unimplemented in test class"); + } + + @Override + public long tell() throws IOException { + throw new UnsupportedOperationException("Unimplemented in test class"); + } + + @Override + public int read() throws IOException { + if (curPos >= str.length()) { + return -1; + } + return str.charAt(curPos++); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + if (curPos >= str.length()) { + return -1; + } + int n = 0; + while (len > 0 && curPos < str.length()) { + b[off++] = (byte) str.charAt(curPos++); + n++; + len--; + } + return n; + } + + @Override + public void close() throws IOException { + // no-op + } +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobDeserializer.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobDeserializer.java new file mode 100644 index 0000000..be377ba --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobDeserializer.java @@ -0,0 +1,122 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import com.google.common.base.Charsets; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.serialization.EventDeserializer; +import org.apache.flume.serialization.EventDeserializerFactory; +import org.apache.flume.serialization.ResettableInputStream; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; +import java.util.List; + +public class TestBlobDeserializer extends Assert { + + private String mini; + + @Before + public void setup() { + StringBuilder sb = new StringBuilder(); + sb.append("line 1\n"); + sb.append("line 2\n"); + mini = sb.toString(); + } + + @Test + public void testSimple() throws IOException { + ResettableInputStream in = new ResettableTestStringInputStream(mini); + EventDeserializer des = new BlobDeserializer(new Context(), in); + validateMiniParse(des); + } + + @Test + public void testSimpleViaBuilder() throws IOException { + ResettableInputStream in = new ResettableTestStringInputStream(mini); + EventDeserializer.Builder builder = new BlobDeserializer.Builder(); + EventDeserializer des = builder.build(new Context(), in); + validateMiniParse(des); + } + + @Test + public void testSimpleViaFactory() throws IOException { + ResettableInputStream in = new ResettableTestStringInputStream(mini); + EventDeserializer des; + des = EventDeserializerFactory.getInstance(BlobDeserializer.Builder.class.getName(), + new Context(), in); + validateMiniParse(des); + } + + @Test + public void testBatch() throws IOException { + ResettableInputStream in = new ResettableTestStringInputStream(mini); + EventDeserializer des = new BlobDeserializer(new Context(), in); + List events; + + events = des.readEvents(10); // try to read more than we should have + assertEquals(1, events.size()); + assertEventBodyEquals(mini, events.get(0)); + + des.mark(); + des.close(); + } + + // truncation occurs at maxLineLength boundaries + @Test + public void testMaxLineLength() throws IOException { + String longLine = "abcdefghijklmnopqrstuvwxyz\n"; + Context ctx = new Context(); + ctx.put(BlobDeserializer.MAX_BLOB_LENGTH_KEY, "10"); + + ResettableInputStream in = new ResettableTestStringInputStream(longLine); + EventDeserializer des = new BlobDeserializer(ctx, in); + + assertEventBodyEquals("abcdefghij", des.readEvent()); + assertEventBodyEquals("klmnopqrst", des.readEvent()); + assertEventBodyEquals("uvwxyz\n", des.readEvent()); + assertNull(des.readEvent()); + } + + private void assertEventBodyEquals(String expected, Event event) { + String bodyStr = new String(event.getBody(), Charsets.UTF_8); + assertEquals(expected, bodyStr); + } + + private void validateMiniParse(EventDeserializer des) throws IOException { + Event evt; + + des.mark(); + evt = des.readEvent(); + assertEquals(new String(evt.getBody()), mini); + des.reset(); // reset! + + evt = des.readEvent(); + assertEquals("data should be repeated, " + + "because we reset() the stream", new String(evt.getBody()), mini); + + evt = des.readEvent(); + assertNull("Event should be null because there are no lines " + + "left to read", evt); + + des.mark(); + des.close(); + } +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobHandler.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobHandler.java new file mode 100644 index 0000000..3e7de99 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobHandler.java @@ -0,0 +1,60 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.flume.Event; +import org.apache.flume.source.http.HTTPSourceHandler; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class TestBlobHandler extends Assert { + + private HTTPSourceHandler handler; + + @Before + public void setUp() { + handler = new BlobHandler(); + } + + @Test + public void testSingleEvent() throws Exception { + byte[] json = "foo".getBytes("UTF-8"); + HttpServletRequest req = new FlumeHttpServletRequestWrapper(json); + List deserialized = handler.getEvents(req); + assertEquals(1, deserialized.size()); + Event e = deserialized.get(0); + assertEquals(0, e.getHeaders().size()); + assertEquals("foo", new String(e.getBody(),"UTF-8")); + } + + @Test + public void testEmptyEvent() throws Exception { + byte[] json = "".getBytes("UTF-8"); + HttpServletRequest req = new FlumeHttpServletRequestWrapper(json); + List deserialized = handler.getEvents(req); + assertEquals(1, deserialized.size()); + Event e = deserialized.get(0); + assertEquals(0, e.getHeaders().size()); + assertEquals("", new String(e.getBody(),"UTF-8")); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestEnvironment.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestEnvironment.java new file mode 100644 index 0000000..933a6b1 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestEnvironment.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.net.UnknownHostException; + +import org.junit.Test; + +import org.kitesdk.morphline.solr.EnvironmentTest; + +/** Print and verify some info about the environment in which the unit tests are running */ +public class TestEnvironment extends EnvironmentTest { + + @Test + public void testEnvironment() throws UnknownHostException { + super.testEnvironment(); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineInterceptor.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineInterceptor.java new file mode 100644 index 0000000..8d62d38 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineInterceptor.java @@ -0,0 +1,167 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.Files; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.event.EventBuilder; +import org.junit.Assert; +import org.junit.Test; +import org.kitesdk.morphline.base.Fields; + +import java.io.File; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TestMorphlineInterceptor extends Assert { + + private static final String RESOURCES_DIR = "target/test-classes"; + + @Test + public void testNoOperation() throws Exception { + Context context = new Context(); + context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM, + RESOURCES_DIR + "/test-morphlines/noOperation.conf"); + Event input = EventBuilder.withBody("foo", Charsets.UTF_8); + input.getHeaders().put("name", "nadja"); + MorphlineInterceptor interceptor = build(context); + Event actual = interceptor.intercept(input); + interceptor.close(); + Event expected = EventBuilder.withBody("foo".getBytes("UTF-8"), + ImmutableMap.of("name", "nadja")); + assertEqualsEvent(expected, actual); + + List actualList = build(context).intercept(Collections.singletonList(input)); + List expectedList = Collections.singletonList(expected); + assertEqualsEventList(expectedList, actualList); + } + + @Test + public void testReadClob() throws Exception { + Context context = new Context(); + context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM, + RESOURCES_DIR + "/test-morphlines/readClob.conf"); + Event input = EventBuilder.withBody("foo", Charsets.UTF_8); + input.getHeaders().put("name", "nadja"); + Event actual = build(context).intercept(input); + Event expected = EventBuilder.withBody(null, + ImmutableMap.of("name", "nadja", Fields.MESSAGE, "foo")); + assertEqualsEvent(expected, actual); + + List actualList = build(context).intercept(Collections.singletonList(input)); + List expectedList = Collections.singletonList(expected); + assertEqualsEventList(expectedList, actualList); + } + + @Test + public void testGrokIfNotMatchDropEventRetain() throws Exception { + Context context = new Context(); + context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM, + RESOURCES_DIR + "/test-morphlines/grokIfNotMatchDropRecord.conf"); + + String msg = "<164>Feb 4 10:46:14 syslog sshd[607]: Server listening on 0.0.0.0 port 22."; + Event input = EventBuilder.withBody(null, ImmutableMap.of(Fields.MESSAGE, msg)); + Event actual = build(context).intercept(input); + + Map expected = new HashMap(); + expected.put(Fields.MESSAGE, msg); + expected.put("syslog_pri", "164"); + expected.put("syslog_timestamp", "Feb 4 10:46:14"); + expected.put("syslog_hostname", "syslog"); + expected.put("syslog_program", "sshd"); + expected.put("syslog_pid", "607"); + expected.put("syslog_message", "Server listening on 0.0.0.0 port 22."); + Event expectedEvent = EventBuilder.withBody(null, expected); + assertEqualsEvent(expectedEvent, actual); + } + + @Test + /* leading XXXXX does not match regex, thus we expect the event to be dropped */ + public void testGrokIfNotMatchDropEventDrop() throws Exception { + Context context = new Context(); + context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM, + RESOURCES_DIR + "/test-morphlines/grokIfNotMatchDropRecord.conf"); + String msg = "Feb 4 10:46:14 syslog sshd[607]: Server listening on 0.0.0.0" + + " port 22."; + Event input = EventBuilder.withBody(null, ImmutableMap.of(Fields.MESSAGE, msg)); + Event actual = build(context).intercept(input); + assertNull(actual); + } + + @Test + /** morphline says route to southpole if it's an avro file, otherwise route to northpole */ + public void testIfDetectMimeTypeRouteToSouthPole() throws Exception { + Context context = new Context(); + context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM, + RESOURCES_DIR + "/test-morphlines/ifDetectMimeType.conf"); + context.put(MorphlineHandlerImpl.MORPHLINE_VARIABLE_PARAM + ".MY.MIME_TYPE", "avro/binary"); + + Event input = EventBuilder.withBody(Files.toByteArray( + new File(RESOURCES_DIR + "/test-documents/sample-statuses-20120906-141433.avro"))); + Event actual = build(context).intercept(input); + + Map expected = new HashMap(); + expected.put(Fields.ATTACHMENT_MIME_TYPE, "avro/binary"); + expected.put("flume.selector.header", "goToSouthPole"); + Event expectedEvent = EventBuilder.withBody(input.getBody(), expected); + assertEqualsEvent(expectedEvent, actual); + } + + @Test + /** morphline says route to southpole if it's an avro file, otherwise route to northpole */ + public void testIfDetectMimeTypeRouteToNorthPole() throws Exception { + Context context = new Context(); + context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM, + RESOURCES_DIR + "/test-morphlines/ifDetectMimeType.conf"); + context.put(MorphlineHandlerImpl.MORPHLINE_VARIABLE_PARAM + ".MY.MIME_TYPE", "avro/binary"); + + Event input = EventBuilder.withBody( + Files.toByteArray(new File(RESOURCES_DIR + "/test-documents/testPDF.pdf"))); + Event actual = build(context).intercept(input); + + Map expected = new HashMap(); + expected.put(Fields.ATTACHMENT_MIME_TYPE, "application/pdf"); + expected.put("flume.selector.header", "goToNorthPole"); + Event expectedEvent = EventBuilder.withBody(input.getBody(), expected); + assertEqualsEvent(expectedEvent, actual); + } + + private MorphlineInterceptor build(Context context) { + MorphlineInterceptor.Builder builder = new MorphlineInterceptor.Builder(); + builder.configure(context); + return builder.build(); + } + + // b/c SimpleEvent doesn't implement equals() method :-( + private void assertEqualsEvent(Event x, Event y) { + assertEquals(x.getHeaders(), y.getHeaders()); + assertArrayEquals(x.getBody(), y.getBody()); + } + + private void assertEqualsEventList(List x, List y) { + assertEquals(x.size(), y.size()); + for (int i = 0; i < x.size(); i++) { + assertEqualsEvent(x.get(i), y.get(i)); + } + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineSolrSink.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineSolrSink.java new file mode 100644 index 0000000..1bfae95 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineSolrSink.java @@ -0,0 +1,431 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.flume.Channel; +import org.apache.flume.ChannelSelector; +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.EventDeliveryException; +import org.apache.flume.channel.ChannelProcessor; +import org.apache.flume.channel.MemoryChannel; +import org.apache.flume.channel.ReplicatingChannelSelector; +import org.apache.flume.conf.Configurables; +import org.apache.flume.event.EventBuilder; +import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.client.solrj.SolrQuery; +import org.apache.solr.client.solrj.SolrServer; +import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.response.QueryResponse; +import org.apache.solr.common.SolrDocument; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.kitesdk.morphline.api.MorphlineContext; +import org.kitesdk.morphline.api.Record; +import org.kitesdk.morphline.base.FaultTolerance; +import org.kitesdk.morphline.base.Fields; +import org.kitesdk.morphline.solr.DocumentLoader; +import org.kitesdk.morphline.solr.SolrLocator; +import org.kitesdk.morphline.solr.SolrMorphlineContext; +import org.kitesdk.morphline.solr.SolrServerDocumentLoader; +import org.kitesdk.morphline.solr.TestEmbeddedSolrServer; +import com.codahale.metrics.MetricRegistry; +import com.google.common.base.Charsets; +import com.google.common.collect.ImmutableListMultimap; +import com.google.common.collect.ListMultimap; +import com.google.common.io.Files; + +public class TestMorphlineSolrSink extends SolrTestCaseJ4 { + + private EmbeddedSource source; + private SolrServer solrServer; + private MorphlineSink sink; + private Map expectedRecords; + + private File tmpFile; + private static final boolean TEST_WITH_EMBEDDED_SOLR_SERVER = true; + private static final String EXTERNAL_SOLR_SERVER_URL = System.getProperty("externalSolrServer"); +//private static final String EXTERNAL_SOLR_SERVER_URL = "http://127.0.0.1:8983/solr"; + private static final String RESOURCES_DIR = "target/test-classes"; +//private static final String RESOURCES_DIR = "src/test/resources"; + private static final AtomicInteger SEQ_NUM = new AtomicInteger(); + private static final AtomicInteger SEQ_NUM2 = new AtomicInteger(); + private static final Logger LOGGER = LoggerFactory.getLogger(TestMorphlineSolrSink.class); + + @BeforeClass + public static void beforeClass() throws Exception { + initCore( + RESOURCES_DIR + "/solr/collection1/conf/solrconfig.xml", + RESOURCES_DIR + "/solr/collection1/conf/schema.xml", + RESOURCES_DIR + "/solr"); + } + + @Before + @Override + public void setUp() throws Exception { + super.setUp(); + String path = RESOURCES_DIR + "/test-documents"; + expectedRecords = new HashMap(); + expectedRecords.put(path + "/sample-statuses-20120906-141433.avro", 2); + expectedRecords.put(path + "/sample-statuses-20120906-141433", 2); + expectedRecords.put(path + "/sample-statuses-20120906-141433.gz", 2); + expectedRecords.put(path + "/sample-statuses-20120906-141433.bz2", 2); + expectedRecords.put(path + "/cars.csv", 5); + expectedRecords.put(path + "/cars.csv.gz", 5); + expectedRecords.put(path + "/cars.tar.gz", 4); + expectedRecords.put(path + "/cars.tsv", 5); + expectedRecords.put(path + "/cars.ssv", 5); + + final Map context = new HashMap(); + + if (EXTERNAL_SOLR_SERVER_URL != null) { + throw new UnsupportedOperationException(); + //solrServer = new ConcurrentUpdateSolrServer(EXTERNAL_SOLR_SERVER_URL, 2, 2); + //solrServer = new SafeConcurrentUpdateSolrServer(EXTERNAL_SOLR_SERVER_URL, 2, 2); + //solrServer = new HttpSolrServer(EXTERNAL_SOLR_SERVER_URL); + } else { + if (TEST_WITH_EMBEDDED_SOLR_SERVER) { + solrServer = new TestEmbeddedSolrServer(h.getCoreContainer(), ""); + } else { + throw new RuntimeException("Not yet implemented"); + //solrServer = new TestSolrServer(getSolrServer()); + } + } + + Map channelContext = new HashMap(); + channelContext.put("capacity", "1000000"); + channelContext.put("keep-alive", "0"); // for faster tests + Channel channel = new MemoryChannel(); + channel.setName(channel.getClass().getName() + SEQ_NUM.getAndIncrement()); + Configurables.configure(channel, new Context(channelContext)); + + class MySolrSink extends MorphlineSolrSink { + public MySolrSink(MorphlineHandlerImpl indexer) { + super(indexer); + } + } + + int batchSize = SEQ_NUM2.incrementAndGet() % 2 == 0 ? 100 : 1; + DocumentLoader testServer = new SolrServerDocumentLoader(solrServer, batchSize); + MorphlineContext solrMorphlineContext = new SolrMorphlineContext.Builder() + .setDocumentLoader(testServer) + .setExceptionHandler(new FaultTolerance(false, false, SolrServerException.class.getName())) + .setMetricRegistry(new MetricRegistry()).build(); + + MorphlineHandlerImpl impl = new MorphlineHandlerImpl(); + impl.setMorphlineContext(solrMorphlineContext); + + class MySolrLocator extends SolrLocator { // trick to access protected ctor + public MySolrLocator(MorphlineContext indexer) { + super(indexer); + } + } + + SolrLocator locator = new MySolrLocator(solrMorphlineContext); + locator.setSolrHomeDir(testSolrHome + "/collection1"); + String str1 = "SOLR_LOCATOR : " + locator.toString(); + //File solrLocatorFile = new File("target/test-classes/test-morphlines/solrLocator.conf"); + //String str1 = Files.toString(solrLocatorFile, Charsets.UTF_8); + File morphlineFile = new File("target/test-classes/test-morphlines/solrCellDocumentTypes.conf"); + String str2 = Files.toString(morphlineFile, Charsets.UTF_8); + tmpFile = File.createTempFile("morphline", ".conf"); + tmpFile.deleteOnExit(); + Files.write(str1 + "\n" + str2, tmpFile, Charsets.UTF_8); + context.put("morphlineFile", tmpFile.getPath()); + + impl.configure(new Context(context)); + sink = new MySolrSink(impl); + sink.setName(sink.getClass().getName() + SEQ_NUM.getAndIncrement()); + sink.configure(new Context(context)); + sink.setChannel(channel); + sink.start(); + + source = new EmbeddedSource(sink); + ChannelSelector rcs = new ReplicatingChannelSelector(); + rcs.setChannels(Collections.singletonList(channel)); + ChannelProcessor chp = new ChannelProcessor(rcs); + Context chpContext = new Context(); + chpContext.put("interceptors", "uuidinterceptor"); + chpContext.put("interceptors.uuidinterceptor.type", UUIDInterceptor.Builder.class.getName()); + chp.configure(chpContext); + source.setChannelProcessor(chp); + + deleteAllDocuments(); + } + + private void deleteAllDocuments() throws SolrServerException, IOException { + SolrServer s = solrServer; + s.deleteByQuery("*:*"); // delete everything! + s.commit(); + } + + @After + @Override + public void tearDown() throws Exception { + try { + if (source != null) { + source.stop(); + source = null; + } + if (sink != null) { + sink.stop(); + sink = null; + } + if (tmpFile != null) { + tmpFile.delete(); + } + } finally { + solrServer = null; + expectedRecords = null; + super.tearDown(); + } + } + + @Test + public void testDocumentTypes() throws Exception { + String path = RESOURCES_DIR + "/test-documents"; + String[] files = new String[] { + path + "/testBMPfp.txt", + path + "/boilerplate.html", + path + "/NullHeader.docx", + path + "/testWORD_various.doc", + path + "/testPDF.pdf", + path + "/testJPEG_EXIF.jpg", + path + "/testXML.xml", +// path + "/cars.csv", +// path + "/cars.tsv", +// path + "/cars.ssv", +// path + "/cars.csv.gz", +// path + "/cars.tar.gz", + path + "/sample-statuses-20120906-141433.avro", + path + "/sample-statuses-20120906-141433", + path + "/sample-statuses-20120906-141433.gz", + path + "/sample-statuses-20120906-141433.bz2", + }; + testDocumentTypesInternal(files); + } + + @Test + public void testDocumentTypes2() throws Exception { + String path = RESOURCES_DIR + "/test-documents"; + String[] files = new String[] { + path + "/testPPT_various.ppt", + path + "/testPPT_various.pptx", + path + "/testEXCEL.xlsx", + path + "/testEXCEL.xls", + path + "/testPages.pages", + path + "/testNumbers.numbers", + path + "/testKeynote.key", + + path + "/testRTFVarious.rtf", + path + "/complex.mbox", + path + "/test-outlook.msg", + path + "/testEMLX.emlx", +// path + "/testRFC822", + path + "/rsstest.rss", +// path + "/testDITA.dita", + + path + "/testMP3i18n.mp3", + path + "/testAIFF.aif", + path + "/testFLAC.flac", +// path + "/testFLAC.oga", +// path + "/testVORBIS.ogg", + path + "/testMP4.m4a", + path + "/testWAV.wav", +// path + "/testWMA.wma", + + path + "/testFLV.flv", +// path + "/testWMV.wmv", + + path + "/testBMP.bmp", + path + "/testPNG.png", + path + "/testPSD.psd", + path + "/testSVG.svg", + path + "/testTIFF.tif", + +// path + "/test-documents.7z", +// path + "/test-documents.cpio", +// path + "/test-documents.tar", +// path + "/test-documents.tbz2", +// path + "/test-documents.tgz", +// path + "/test-documents.zip", +// path + "/test-zip-of-zip.zip", +// path + "/testJAR.jar", + +// path + "/testKML.kml", +// path + "/testRDF.rdf", + path + "/testTrueType.ttf", + path + "/testVISIO.vsd", +// path + "/testWAR.war", +// path + "/testWindows-x86-32.exe", +// path + "/testWINMAIL.dat", +// path + "/testWMF.wmf", + }; + testDocumentTypesInternal(files); + } + + @Test + public void testAvroRoundTrip() throws Exception { + String file = RESOURCES_DIR + "/test-documents" + "/sample-statuses-20120906-141433.avro"; + testDocumentTypesInternal(file); + QueryResponse rsp = query("*:*"); + Iterator iter = rsp.getResults().iterator(); + ListMultimap expectedFieldValues; + expectedFieldValues = ImmutableListMultimap.of("id", "1234567890", "text", "sample tweet one", + "user_screen_name", "fake_user1"); + assertEquals(expectedFieldValues, next(iter)); + expectedFieldValues = ImmutableListMultimap.of("id", "2345678901", "text", "sample tweet two", + "user_screen_name", "fake_user2"); + assertEquals(expectedFieldValues, next(iter)); + assertFalse(iter.hasNext()); + } + + private ListMultimap next(Iterator iter) { + SolrDocument doc = iter.next(); + Record record = toRecord(doc); + record.removeAll("_version_"); // the values of this field are unknown and internal to solr + return record.getFields(); + } + + private Record toRecord(SolrDocument doc) { + Record record = new Record(); + for (String key : doc.keySet()) { + record.getFields().replaceValues(key, doc.getFieldValues(key)); + } + return record; + } + + private void testDocumentTypesInternal(String... files) throws Exception { + int numDocs = 0; + long startTime = System.currentTimeMillis(); + + assertEquals(numDocs, queryResultSetSize("*:*")); +// assertQ(req("*:*"), "//*[@numFound='0']"); + for (int i = 0; i < 1; i++) { + for (String file : files) { + File f = new File(file); + byte[] body = Files.toByteArray(f); + Event event = EventBuilder.withBody(body); + event.getHeaders().put(Fields.ATTACHMENT_NAME, f.getName()); + load(event); + Integer count = expectedRecords.get(file); + if (count != null) { + numDocs += count; + } else { + numDocs++; + } + assertEquals(numDocs, queryResultSetSize("*:*")); + } + LOGGER.trace("iter: {}", i); + } + LOGGER.trace("all done with put at {}", System.currentTimeMillis() - startTime); + assertEquals(numDocs, queryResultSetSize("*:*")); + LOGGER.trace("sink: ", sink); + } + +// @Test + public void benchmarkDocumentTypes() throws Exception { + int iters = 200; + +// LogManager.getLogger(getClass().getPackage().getName()).setLevel(Level.INFO); + + assertEquals(0, queryResultSetSize("*:*")); + String path = RESOURCES_DIR + "/test-documents"; + String[] files = new String[] { +// path + "/testBMPfp.txt", +// path + "/boilerplate.html", +// path + "/NullHeader.docx", +// path + "/testWORD_various.doc", +// path + "/testPDF.pdf", +// path + "/testJPEG_EXIF.jpg", +// path + "/testXML.xml", +// path + "/cars.csv", +// path + "/cars.csv.gz", +// path + "/cars.tar.gz", +// path + "/sample-statuses-20120906-141433.avro", + path + "/sample-statuses-20120906-141433-medium.avro", + }; + + List events = new ArrayList(); + for (String file : files) { + File f = new File(file); + byte[] body = Files.toByteArray(f); + Event event = EventBuilder.withBody(body); +// event.getHeaders().put(Metadata.RESOURCE_NAME_KEY, f.getName()); + events.add(event); + } + + long startTime = System.currentTimeMillis(); + for (int i = 0; i < iters; i++) { + if (i % 10000 == 0) { + LOGGER.info("iter: {}", i); + } + for (Event event : events) { + event = EventBuilder.withBody(event.getBody(), new HashMap(event.getHeaders())); + event.getHeaders().put("id", UUID.randomUUID().toString()); + load(event); + } + } + + float secs = (System.currentTimeMillis() - startTime) / 1000.0f; + long numDocs = queryResultSetSize("*:*"); + LOGGER.info("Took secs: " + secs + ", iters/sec: " + (iters / secs)); + LOGGER.info("Took secs: " + secs + ", docs/sec: " + (numDocs / secs)); + LOGGER.info("Iterations: " + iters + ", numDocs: " + numDocs); + LOGGER.info("sink: ", sink); + } + + private void load(Event event) throws EventDeliveryException { + source.load(event); + } + + private void commit() throws SolrServerException, IOException { + solrServer.commit(false, true, true); + } + + private int queryResultSetSize(String query) throws SolrServerException, IOException { + commit(); + QueryResponse rsp = query(query); + LOGGER.debug("rsp: {}", rsp); + int size = rsp.getResults().size(); + return size; + } + + private QueryResponse query(String query) throws SolrServerException, IOException { + commit(); + QueryResponse rsp = solrServer.query(new SolrQuery(query).setRows(Integer.MAX_VALUE)); + LOGGER.debug("rsp: {}", rsp); + return rsp; + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestUUIDInterceptor.java b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestUUIDInterceptor.java new file mode 100644 index 0000000..ceff028 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestUUIDInterceptor.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.flume.sink.solr.morphline; + +import org.apache.flume.Context; +import org.apache.flume.Event; +import org.apache.flume.event.SimpleEvent; +import org.junit.Assert; +import org.junit.Test; + +public class TestUUIDInterceptor extends Assert { + + private static final String ID = "id"; + + @Test + public void testBasic() throws Exception { + Context context = new Context(); + context.put(UUIDInterceptor.HEADER_NAME, ID); + context.put(UUIDInterceptor.PRESERVE_EXISTING_NAME, "true"); + Event event = new SimpleEvent(); + assertTrue(build(context).intercept(event).getHeaders().get(ID).length() > 0); + } + + @Test + public void testPreserveExisting() throws Exception { + Context context = new Context(); + context.put(UUIDInterceptor.HEADER_NAME, ID); + context.put(UUIDInterceptor.PRESERVE_EXISTING_NAME, "true"); + Event event = new SimpleEvent(); + event.getHeaders().put(ID, "foo"); + assertEquals("foo", build(context).intercept(event).getHeaders().get(ID)); + } + + @Test + public void testPrefix() throws Exception { + Context context = new Context(); + context.put(UUIDInterceptor.HEADER_NAME, ID); + context.put(UUIDInterceptor.PREFIX_NAME, "bar#"); + Event event = new SimpleEvent(); + assertTrue(build(context).intercept(event).getHeaders().get(ID).startsWith("bar#")); + } + + private UUIDInterceptor build(Context context) { + UUIDInterceptor.Builder builder = new UUIDInterceptor.Builder(); + builder.configure(context); + return builder.build(); + } + +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/custom-mimetypes.xml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/custom-mimetypes.xml new file mode 100644 index 0000000..4ee476a --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/custom-mimetypes.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/log4j.properties b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/log4j.properties new file mode 100644 index 0000000..4bfd3fc --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/log4j.properties @@ -0,0 +1,34 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +log4j.rootLogger=WARN, A1 + +log4j.logger.org.apache.flume.sink=INFO +#log4j.logger.org.apache.flume.sink.solr=DEBUG +log4j.logger.org.apache.solr=INFO +#log4j.logger.org.apache.solr.hadoop=DEBUG +log4j.logger.org.kitesdk.morphline=DEBUG +log4j.logger.org.apache.solr.morphline=DEBUG +log4j.logger.org.apache.solr.update.processor.LogUpdateProcessor=WARN +log4j.logger.org.apache.solr.core.SolrCore=WARN +log4j.logger.org.apache.solr.search.SolrIndexSearcher=ERROR + +# A1 is set to be a ConsoleAppender. +log4j.appender.A1=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/currency.xml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/currency.xml new file mode 100644 index 0000000..654de41 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/currency.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/elevate.xml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/elevate.xml new file mode 100644 index 0000000..8f3aa80 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/elevate.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ca.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ca.txt new file mode 100644 index 0000000..307a85f --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ca.txt @@ -0,0 +1,8 @@ +# Set of Catalan contractions for ElisionFilter +# TODO: load this as a resource from the analyzer and sync it in build.xml +d +l +m +n +s +t diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_fr.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_fr.txt new file mode 100644 index 0000000..722db58 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_fr.txt @@ -0,0 +1,9 @@ +# Set of French contractions for ElisionFilter +# TODO: load this as a resource from the analyzer and sync it in build.xml +l +m +t +qu +n +s +j diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ga.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ga.txt new file mode 100644 index 0000000..9ebe7fa --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ga.txt @@ -0,0 +1,5 @@ +# Set of Irish contractions for ElisionFilter +# TODO: load this as a resource from the analyzer and sync it in build.xml +d +m +b diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_it.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_it.txt new file mode 100644 index 0000000..cac0409 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_it.txt @@ -0,0 +1,23 @@ +# Set of Italian contractions for ElisionFilter +# TODO: load this as a resource from the analyzer and sync it in build.xml +c +l +all +dall +dell +nell +sull +coll +pell +gl +agl +dagl +degl +negl +sugl +un +m +t +s +v +d diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/hyphenations_ga.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/hyphenations_ga.txt new file mode 100644 index 0000000..4d2642c --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/hyphenations_ga.txt @@ -0,0 +1,5 @@ +# Set of Irish hyphenations for StopFilter +# TODO: load this as a resource from the analyzer and sync it in build.xml +h +n +t diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stemdict_nl.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stemdict_nl.txt new file mode 100644 index 0000000..4410729 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stemdict_nl.txt @@ -0,0 +1,6 @@ +# Set of overrides for the dutch stemmer +# TODO: load this as a resource from the analyzer and sync it in build.xml +fiets fiets +bromfiets bromfiets +ei eier +kind kinder diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stoptags_ja.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stoptags_ja.txt new file mode 100644 index 0000000..71b7508 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stoptags_ja.txt @@ -0,0 +1,420 @@ +# +# This file defines a Japanese stoptag set for JapanesePartOfSpeechStopFilter. +# +# Any token with a part-of-speech tag that exactly matches those defined in this +# file are removed from the token stream. +# +# Set your own stoptags by uncommenting the lines below. Note that comments are +# not allowed on the same line as a stoptag. See LUCENE-3745 for frequency lists, +# etc. that can be useful for building you own stoptag set. +# +# The entire possible tagset is provided below for convenience. +# +##### +# noun: unclassified nouns +#名詞 +# +# noun-common: Common nouns or nouns where the sub-classification is undefined +#名詞-一般 +# +# noun-proper: Proper nouns where the sub-classification is undefined +#名詞-固有名詞 +# +# noun-proper-misc: miscellaneous proper nouns +#名詞-固有名詞-一般 +# +# noun-proper-person: Personal names where the sub-classification is undefined +#名詞-固有名詞-人名 +# +# noun-proper-person-misc: names that cannot be divided into surname and +# given name; foreign names; names where the surname or given name is unknown. +# e.g. お市の方 +#名詞-固有名詞-人名-一般 +# +# noun-proper-person-surname: Mainly Japanese surnames. +# e.g. 山田 +#名詞-固有名詞-人名-姓 +# +# noun-proper-person-given_name: Mainly Japanese given names. +# e.g. 太郎 +#名詞-固有名詞-人名-名 +# +# noun-proper-organization: Names representing organizations. +# e.g. 通産省, NHK +#名詞-固有名詞-組織 +# +# noun-proper-place: Place names where the sub-classification is undefined +#名詞-固有名詞-地域 +# +# noun-proper-place-misc: Place names excluding countries. +# e.g. アジア, バルセロナ, 京都 +#名詞-固有名詞-地域-一般 +# +# noun-proper-place-country: Country names. +# e.g. 日本, オーストラリア +#名詞-固有名詞-地域-国 +# +# noun-pronoun: Pronouns where the sub-classification is undefined +#名詞-代名詞 +# +# noun-pronoun-misc: miscellaneous pronouns: +# e.g. それ, ここ, あいつ, あなた, あちこち, いくつ, どこか, なに, みなさん, みんな, わたくし, われわれ +#名詞-代名詞-一般 +# +# noun-pronoun-contraction: Spoken language contraction made by combining a +# pronoun and the particle 'wa'. +# e.g. ありゃ, こりゃ, こりゃあ, そりゃ, そりゃあ +#名詞-代名詞-縮約 +# +# noun-adverbial: Temporal nouns such as names of days or months that behave +# like adverbs. Nouns that represent amount or ratios and can be used adverbially, +# e.g. 金曜, 一月, 午後, 少量 +#名詞-副詞可能 +# +# noun-verbal: Nouns that take arguments with case and can appear followed by +# 'suru' and related verbs (する, できる, なさる, くださる) +# e.g. インプット, 愛着, 悪化, 悪戦苦闘, 一安心, 下取り +#名詞-サ変接続 +# +# noun-adjective-base: The base form of adjectives, words that appear before な ("na") +# e.g. 健康, 安易, 駄目, だめ +#名詞-形容動詞語幹 +# +# noun-numeric: Arabic numbers, Chinese numerals, and counters like 何 (回), 数. +# e.g. 0, 1, 2, 何, 数, 幾 +#名詞-数 +# +# noun-affix: noun affixes where the sub-classification is undefined +#名詞-非自立 +# +# noun-affix-misc: Of adnominalizers, the case-marker の ("no"), and words that +# attach to the base form of inflectional words, words that cannot be classified +# into any of the other categories below. This category includes indefinite nouns. +# e.g. あかつき, 暁, かい, 甲斐, 気, きらい, 嫌い, くせ, 癖, こと, 事, ごと, 毎, しだい, 次第, +# 順, せい, 所為, ついで, 序で, つもり, 積もり, 点, どころ, の, はず, 筈, はずみ, 弾み, +# 拍子, ふう, ふり, 振り, ほう, 方, 旨, もの, 物, 者, ゆえ, 故, ゆえん, 所以, わけ, 訳, +# わり, 割り, 割, ん-口語/, もん-口語/ +#名詞-非自立-一般 +# +# noun-affix-adverbial: noun affixes that that can behave as adverbs. +# e.g. あいだ, 間, あげく, 挙げ句, あと, 後, 余り, 以外, 以降, 以後, 以上, 以前, 一方, うえ, +# 上, うち, 内, おり, 折り, かぎり, 限り, きり, っきり, 結果, ころ, 頃, さい, 際, 最中, さなか, +# 最中, じたい, 自体, たび, 度, ため, 為, つど, 都度, とおり, 通り, とき, 時, ところ, 所, +# とたん, 途端, なか, 中, のち, 後, ばあい, 場合, 日, ぶん, 分, ほか, 他, まえ, 前, まま, +# 儘, 侭, みぎり, 矢先 +#名詞-非自立-副詞可能 +# +# noun-affix-aux: noun affixes treated as 助動詞 ("auxiliary verb") in school grammars +# with the stem よう(だ) ("you(da)"). +# e.g. よう, やう, 様 (よう) +#名詞-非自立-助動詞語幹 +# +# noun-affix-adjective-base: noun affixes that can connect to the indeclinable +# connection form な (aux "da"). +# e.g. みたい, ふう +#名詞-非自立-形容動詞語幹 +# +# noun-special: special nouns where the sub-classification is undefined. +#名詞-特殊 +# +# noun-special-aux: The そうだ ("souda") stem form that is used for reporting news, is +# treated as 助動詞 ("auxiliary verb") in school grammars, and attach to the base +# form of inflectional words. +# e.g. そう +#名詞-特殊-助動詞語幹 +# +# noun-suffix: noun suffixes where the sub-classification is undefined. +#名詞-接尾 +# +# noun-suffix-misc: Of the nouns or stem forms of other parts of speech that connect +# to ガル or タイ and can combine into compound nouns, words that cannot be classified into +# any of the other categories below. In general, this category is more inclusive than +# 接尾語 ("suffix") and is usually the last element in a compound noun. +# e.g. おき, かた, 方, 甲斐 (がい), がかり, ぎみ, 気味, ぐるみ, (~した) さ, 次第, 済 (ず) み, +# よう, (でき)っこ, 感, 観, 性, 学, 類, 面, 用 +#名詞-接尾-一般 +# +# noun-suffix-person: Suffixes that form nouns and attach to person names more often +# than other nouns. +# e.g. 君, 様, 著 +#名詞-接尾-人名 +# +# noun-suffix-place: Suffixes that form nouns and attach to place names more often +# than other nouns. +# e.g. 町, 市, 県 +#名詞-接尾-地域 +# +# noun-suffix-verbal: Of the suffixes that attach to nouns and form nouns, those that +# can appear before スル ("suru"). +# e.g. 化, 視, 分け, 入り, 落ち, 買い +#名詞-接尾-サ変接続 +# +# noun-suffix-aux: The stem form of そうだ (様態) that is used to indicate conditions, +# is treated as 助動詞 ("auxiliary verb") in school grammars, and attach to the +# conjunctive form of inflectional words. +# e.g. そう +#名詞-接尾-助動詞語幹 +# +# noun-suffix-adjective-base: Suffixes that attach to other nouns or the conjunctive +# form of inflectional words and appear before the copula だ ("da"). +# e.g. 的, げ, がち +#名詞-接尾-形容動詞語幹 +# +# noun-suffix-adverbial: Suffixes that attach to other nouns and can behave as adverbs. +# e.g. 後 (ご), 以後, 以降, 以前, 前後, 中, 末, 上, 時 (じ) +#名詞-接尾-副詞可能 +# +# noun-suffix-classifier: Suffixes that attach to numbers and form nouns. This category +# is more inclusive than 助数詞 ("classifier") and includes common nouns that attach +# to numbers. +# e.g. 個, つ, 本, 冊, パーセント, cm, kg, カ月, か国, 区画, 時間, 時半 +#名詞-接尾-助数詞 +# +# noun-suffix-special: Special suffixes that mainly attach to inflecting words. +# e.g. (楽し) さ, (考え) 方 +#名詞-接尾-特殊 +# +# noun-suffix-conjunctive: Nouns that behave like conjunctions and join two words +# together. +# e.g. (日本) 対 (アメリカ), 対 (アメリカ), (3) 対 (5), (女優) 兼 (主婦) +#名詞-接続詞的 +# +# noun-verbal_aux: Nouns that attach to the conjunctive particle て ("te") and are +# semantically verb-like. +# e.g. ごらん, ご覧, 御覧, 頂戴 +#名詞-動詞非自立的 +# +# noun-quotation: text that cannot be segmented into words, proverbs, Chinese poetry, +# dialects, English, etc. Currently, the only entry for 名詞 引用文字列 ("noun quotation") +# is いわく ("iwaku"). +#名詞-引用文字列 +# +# noun-nai_adjective: Words that appear before the auxiliary verb ない ("nai") and +# behave like an adjective. +# e.g. 申し訳, 仕方, とんでも, 違い +#名詞-ナイ形容詞語幹 +# +##### +# prefix: unclassified prefixes +#接頭詞 +# +# prefix-nominal: Prefixes that attach to nouns (including adjective stem forms) +# excluding numerical expressions. +# e.g. お (水), 某 (氏), 同 (社), 故 (~氏), 高 (品質), お (見事), ご (立派) +#接頭詞-名詞接続 +# +# prefix-verbal: Prefixes that attach to the imperative form of a verb or a verb +# in conjunctive form followed by なる/なさる/くださる. +# e.g. お (読みなさい), お (座り) +#接頭詞-動詞接続 +# +# prefix-adjectival: Prefixes that attach to adjectives. +# e.g. お (寒いですねえ), バカ (でかい) +#接頭詞-形容詞接続 +# +# prefix-numerical: Prefixes that attach to numerical expressions. +# e.g. 約, およそ, 毎時 +#接頭詞-数接続 +# +##### +# verb: unclassified verbs +#動詞 +# +# verb-main: +#動詞-自立 +# +# verb-auxiliary: +#動詞-非自立 +# +# verb-suffix: +#動詞-接尾 +# +##### +# adjective: unclassified adjectives +#形容詞 +# +# adjective-main: +#形容詞-自立 +# +# adjective-auxiliary: +#形容詞-非自立 +# +# adjective-suffix: +#形容詞-接尾 +# +##### +# adverb: unclassified adverbs +#副詞 +# +# adverb-misc: Words that can be segmented into one unit and where adnominal +# modification is not possible. +# e.g. あいかわらず, 多分 +#副詞-一般 +# +# adverb-particle_conjunction: Adverbs that can be followed by の, は, に, +# な, する, だ, etc. +# e.g. こんなに, そんなに, あんなに, なにか, なんでも +#副詞-助詞類接続 +# +##### +# adnominal: Words that only have noun-modifying forms. +# e.g. この, その, あの, どの, いわゆる, なんらかの, 何らかの, いろんな, こういう, そういう, ああいう, +# どういう, こんな, そんな, あんな, どんな, 大きな, 小さな, おかしな, ほんの, たいした, +# 「(, も) さる (ことながら)」, 微々たる, 堂々たる, 単なる, いかなる, 我が」「同じ, 亡き +#連体詞 +# +##### +# conjunction: Conjunctions that can occur independently. +# e.g. が, けれども, そして, じゃあ, それどころか +接続詞 +# +##### +# particle: unclassified particles. +助詞 +# +# particle-case: case particles where the subclassification is undefined. +助詞-格助詞 +# +# particle-case-misc: Case particles. +# e.g. から, が, で, と, に, へ, より, を, の, にて +助詞-格助詞-一般 +# +# particle-case-quote: the "to" that appears after nouns, a person’s speech, +# quotation marks, expressions of decisions from a meeting, reasons, judgements, +# conjectures, etc. +# e.g. ( だ) と (述べた.), ( である) と (して執行猶予...) +助詞-格助詞-引用 +# +# particle-case-compound: Compounds of particles and verbs that mainly behave +# like case particles. +# e.g. という, といった, とかいう, として, とともに, と共に, でもって, にあたって, に当たって, に当って, +# にあたり, に当たり, に当り, に当たる, にあたる, において, に於いて,に於て, における, に於ける, +# にかけ, にかけて, にかんし, に関し, にかんして, に関して, にかんする, に関する, に際し, +# に際して, にしたがい, に従い, に従う, にしたがって, に従って, にたいし, に対し, にたいして, +# に対して, にたいする, に対する, について, につき, につけ, につけて, につれ, につれて, にとって, +# にとり, にまつわる, によって, に依って, に因って, により, に依り, に因り, による, に依る, に因る, +# にわたって, にわたる, をもって, を以って, を通じ, を通じて, を通して, をめぐって, をめぐり, をめぐる, +# って-口語/, ちゅう-関西弁「という」/, (何) ていう (人)-口語/, っていう-口語/, といふ, とかいふ +助詞-格助詞-連語 +# +# particle-conjunctive: +# e.g. から, からには, が, けれど, けれども, けど, し, つつ, て, で, と, ところが, どころか, とも, ども, +# ながら, なり, ので, のに, ば, ものの, や ( した), やいなや, (ころん) じゃ(いけない)-口語/, +# (行っ) ちゃ(いけない)-口語/, (言っ) たって (しかたがない)-口語/, (それがなく)ったって (平気)-口語/ +助詞-接続助詞 +# +# particle-dependency: +# e.g. こそ, さえ, しか, すら, は, も, ぞ +助詞-係助詞 +# +# particle-adverbial: +# e.g. がてら, かも, くらい, 位, ぐらい, しも, (学校) じゃ(これが流行っている)-口語/, +# (それ)じゃあ (よくない)-口語/, ずつ, (私) なぞ, など, (私) なり (に), (先生) なんか (大嫌い)-口語/, +# (私) なんぞ, (先生) なんて (大嫌い)-口語/, のみ, だけ, (私) だって-口語/, だに, +# (彼)ったら-口語/, (お茶) でも (いかが), 等 (とう), (今後) とも, ばかり, ばっか-口語/, ばっかり-口語/, +# ほど, 程, まで, 迄, (誰) も (が)([助詞-格助詞] および [助詞-係助詞] の前に位置する「も」) +助詞-副助詞 +# +# particle-interjective: particles with interjective grammatical roles. +# e.g. (松島) や +助詞-間投助詞 +# +# particle-coordinate: +# e.g. と, たり, だの, だり, とか, なり, や, やら +助詞-並立助詞 +# +# particle-final: +# e.g. かい, かしら, さ, ぜ, (だ)っけ-口語/, (とまってる) で-方言/, な, ナ, なあ-口語/, ぞ, ね, ネ, +# ねぇ-口語/, ねえ-口語/, ねん-方言/, の, のう-口語/, や, よ, ヨ, よぉ-口語/, わ, わい-口語/ +助詞-終助詞 +# +# particle-adverbial/conjunctive/final: The particle "ka" when unknown whether it is +# adverbial, conjunctive, or sentence final. For example: +# (a) 「A か B か」. Ex:「(国内で運用する) か,(海外で運用する) か (.)」 +# (b) Inside an adverb phrase. Ex:「(幸いという) か (, 死者はいなかった.)」 +# 「(祈りが届いたせい) か (, 試験に合格した.)」 +# (c) 「かのように」. Ex:「(何もなかった) か (のように振る舞った.)」 +# e.g. か +助詞-副助詞/並立助詞/終助詞 +# +# particle-adnominalizer: The "no" that attaches to nouns and modifies +# non-inflectional words. +助詞-連体化 +# +# particle-adnominalizer: The "ni" and "to" that appear following nouns and adverbs +# that are giongo, giseigo, or gitaigo. +# e.g. に, と +助詞-副詞化 +# +# particle-special: A particle that does not fit into one of the above classifications. +# This includes particles that are used in Tanka, Haiku, and other poetry. +# e.g. かな, けむ, ( しただろう) に, (あんた) にゃ(わからん), (俺) ん (家) +助詞-特殊 +# +##### +# auxiliary-verb: +助動詞 +# +##### +# interjection: Greetings and other exclamations. +# e.g. おはよう, おはようございます, こんにちは, こんばんは, ありがとう, どうもありがとう, ありがとうございます, +# いただきます, ごちそうさま, さよなら, さようなら, はい, いいえ, ごめん, ごめんなさい +#感動詞 +# +##### +# symbol: unclassified Symbols. +記号 +# +# symbol-misc: A general symbol not in one of the categories below. +# e.g. [○◎@$〒→+] +記号-一般 +# +# symbol-comma: Commas +# e.g. [,、] +記号-読点 +# +# symbol-period: Periods and full stops. +# e.g. [..。] +記号-句点 +# +# symbol-space: Full-width whitespace. +記号-空白 +# +# symbol-open_bracket: +# e.g. [({‘“『【] +記号-括弧開 +# +# symbol-close_bracket: +# e.g. [)}’”』」】] +記号-括弧閉 +# +# symbol-alphabetic: +#記号-アルファベット +# +##### +# other: unclassified other +#その他 +# +# other-interjection: Words that are hard to classify as noun-suffixes or +# sentence-final particles. +# e.g. (だ)ァ +その他-間投 +# +##### +# filler: Aizuchi that occurs during a conversation or sounds inserted as filler. +# e.g. あの, うんと, えと +フィラー +# +##### +# non-verbal: non-verbal sound. +非言語音 +# +##### +# fragment: +#語断片 +# +##### +# unknown: unknown part of speech. +#未知語 +# +##### End of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt new file mode 100644 index 0000000..046829d --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt @@ -0,0 +1,125 @@ +# This file was created by Jacques Savoy and is distributed under the BSD license. +# See http://members.unine.ch/jacques.savoy/clef/index.html. +# Also see http://www.opensource.org/licenses/bsd-license.html +# Cleaned on October 11, 2009 (not normalized, so use before normalization) +# This means that when modifying this list, you might need to add some +# redundant entries, for example containing forms with both أ and ا +من +ومن +منها +منه +في +وفي +فيها +فيه +و +ف +ثم +او +أو +ب +بها +به +ا +أ +اى +اي +أي +أى +لا +ولا +الا +ألا +إلا +لكن +ما +وما +كما +فما +عن +مع +اذا +إذا +ان +أن +إن +انها +أنها +إنها +انه +أنه +إنه +بان +بأن +فان +فأن +وان +وأن +وإن +التى +التي +الذى +الذي +الذين +الى +الي +إلى +إلي +على +عليها +عليه +اما +أما +إما +ايضا +أيضا +كل +وكل +لم +ولم +لن +ولن +هى +هي +هو +وهى +وهي +وهو +فهى +فهي +فهو +انت +أنت +لك +لها +له +هذه +هذا +تلك +ذلك +هناك +كانت +كان +يكون +تكون +وكانت +وكان +غير +بعض +قد +نحو +بين +بينما +منذ +ضمن +حيث +الان +الآن +خلال +بعد +قبل +حتى +عند +عندما +لدى +جميع diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt new file mode 100644 index 0000000..1ae4ba2 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt @@ -0,0 +1,193 @@ +# This file was created by Jacques Savoy and is distributed under the BSD license. +# See http://members.unine.ch/jacques.savoy/clef/index.html. +# Also see http://www.opensource.org/licenses/bsd-license.html +а +аз +ако +ала +бе +без +беше +би +бил +била +били +било +близо +бъдат +бъде +бяха +в +вас +ваш +ваша +вероятно +вече +взема +ви +вие +винаги +все +всеки +всички +всичко +всяка +във +въпреки +върху +г +ги +главно +го +д +да +дали +до +докато +докога +дори +досега +доста +е +едва +един +ето +за +зад +заедно +заради +засега +затова +защо +защото +и +из +или +им +има +имат +иска +й +каза +как +каква +какво +както +какъв +като +кога +когато +което +които +кой +който +колко +която +къде +където +към +ли +м +ме +между +мен +ми +мнозина +мога +могат +може +моля +момента +му +н +на +над +назад +най +направи +напред +например +нас +не +него +нея +ни +ние +никой +нито +но +някои +някой +няма +обаче +около +освен +особено +от +отгоре +отново +още +пак +по +повече +повечето +под +поне +поради +после +почти +прави +пред +преди +през +при +пък +първо +с +са +само +се +сега +си +скоро +след +сме +според +сред +срещу +сте +съм +със +също +т +тази +така +такива +такъв +там +твой +те +тези +ти +тн +то +това +тогава +този +той +толкова +точно +трябва +тук +тъй +тя +тях +у +харесва +ч +че +често +чрез +ще +щом +я diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ca.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ca.txt new file mode 100644 index 0000000..3da65de --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ca.txt @@ -0,0 +1,220 @@ +# Catalan stopwords from http://github.com/vcl/cue.language (Apache 2 Licensed) +a +abans +ací +ah +així +això +al +als +aleshores +algun +alguna +algunes +alguns +alhora +allà +allí +allò +altra +altre +altres +amb +ambdós +ambdues +apa +aquell +aquella +aquelles +aquells +aquest +aquesta +aquestes +aquests +aquí +baix +cada +cadascú +cadascuna +cadascunes +cadascuns +com +contra +d'un +d'una +d'unes +d'uns +dalt +de +del +dels +des +després +dins +dintre +donat +doncs +durant +e +eh +el +els +em +en +encara +ens +entre +érem +eren +éreu +es +és +esta +està +estàvem +estaven +estàveu +esteu +et +etc +ets +fins +fora +gairebé +ha +han +has +havia +he +hem +heu +hi +ho +i +igual +iguals +ja +l'hi +la +les +li +li'n +llavors +m'he +ma +mal +malgrat +mateix +mateixa +mateixes +mateixos +me +mentre +més +meu +meus +meva +meves +molt +molta +moltes +molts +mon +mons +n'he +n'hi +ne +ni +no +nogensmenys +només +nosaltres +nostra +nostre +nostres +o +oh +oi +on +pas +pel +pels +per +però +perquè +poc +poca +pocs +poques +potser +propi +qual +quals +quan +quant +que +què +quelcom +qui +quin +quina +quines +quins +s'ha +s'han +sa +semblant +semblants +ses +seu +seus +seva +seva +seves +si +sobre +sobretot +sóc +solament +sols +son +són +sons +sota +sou +t'ha +t'han +t'he +ta +tal +també +tampoc +tan +tant +tanta +tantes +teu +teus +teva +teves +ton +tons +tot +tota +totes +tots +un +una +unes +uns +us +va +vaig +vam +van +vas +veu +vosaltres +vostra +vostre +vostres diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_cz.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_cz.txt new file mode 100644 index 0000000..53c6097 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_cz.txt @@ -0,0 +1,172 @@ +a +s +k +o +i +u +v +z +dnes +cz +tímto +budeš +budem +byli +jseš +můj +svým +ta +tomto +tohle +tuto +tyto +jej +zda +proč +máte +tato +kam +tohoto +kdo +kteří +mi +nám +tom +tomuto +mít +nic +proto +kterou +byla +toho +protože +asi +ho +naši +napište +re +což +tím +takže +svých +její +svými +jste +aj +tu +tedy +teto +bylo +kde +ke +pravé +ji +nad +nejsou +či +pod +téma +mezi +přes +ty +pak +vám +ani +když +však +neg +jsem +tento +článku +články +aby +jsme +před +pta +jejich +byl +ještě +až +bez +také +pouze +první +vaše +která +nás +nový +tipy +pokud +může +strana +jeho +své +jiné +zprávy +nové +není +vás +jen +podle +zde +už +být +více +bude +již +než +který +by +které +co +nebo +ten +tak +má +při +od +po +jsou +jak +další +ale +si +se +ve +to +jako +za +zpět +ze +do +pro +je +na +atd +atp +jakmile +přičemž +já +on +ona +ono +oni +ony +my +vy +jí +ji +mě +mne +jemu +tomu +těm +těmu +němu +němuž +jehož +jíž +jelikož +jež +jakož +načež diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt new file mode 100644 index 0000000..a3ff5fe --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt @@ -0,0 +1,108 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/danish/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A Danish stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + + | This is a ranked list (commonest to rarest) of stopwords derived from + | a large text sample. + + +og | and +i | in +jeg | I +det | that (dem. pronoun)/it (pers. pronoun) +at | that (in front of a sentence)/to (with infinitive) +en | a/an +den | it (pers. pronoun)/that (dem. pronoun) +til | to/at/for/until/against/by/of/into, more +er | present tense of "to be" +som | who, as +på | on/upon/in/on/at/to/after/of/with/for, on +de | they +med | with/by/in, along +han | he +af | of/by/from/off/for/in/with/on, off +for | at/for/to/from/by/of/ago, in front/before, because +ikke | not +der | who/which, there/those +var | past tense of "to be" +mig | me/myself +sig | oneself/himself/herself/itself/themselves +men | but +et | a/an/one, one (number), someone/somebody/one +har | present tense of "to have" +om | round/about/for/in/a, about/around/down, if +vi | we +min | my +havde | past tense of "to have" +ham | him +hun | she +nu | now +over | over/above/across/by/beyond/past/on/about, over/past +da | then, when/as/since +fra | from/off/since, off, since +du | you +ud | out +sin | his/her/its/one's +dem | them +os | us/ourselves +op | up +man | you/one +hans | his +hvor | where +eller | or +hvad | what +skal | must/shall etc. +selv | myself/youself/herself/ourselves etc., even +her | here +alle | all/everyone/everybody etc. +vil | will (verb) +blev | past tense of "to stay/to remain/to get/to become" +kunne | could +ind | in +når | when +være | present tense of "to be" +dog | however/yet/after all +noget | something +ville | would +jo | you know/you see (adv), yes +deres | their/theirs +efter | after/behind/according to/for/by/from, later/afterwards +ned | down +skulle | should +denne | this +end | than +dette | this +mit | my/mine +også | also +under | under/beneath/below/during, below/underneath +have | have +dig | you +anden | other +hende | her +mine | my +alt | everything +meget | much/very, plenty of +sit | his, her, its, one's +sine | his, her, its, one's +vor | our +mod | against +disse | these +hvis | if +din | your/yours +nogle | some +hos | by/at +blive | be/become +mange | many +ad | by/through +bliver | present tense of "to be/to become" +hendes | her/hers +været | be +thi | for (conj) +jer | you +sådan | such, like this/like that diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt new file mode 100644 index 0000000..f770384 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt @@ -0,0 +1,292 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/german/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A German stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + + | The number of forms in this list is reduced significantly by passing it + | through the German stemmer. + + +aber | but + +alle | all +allem +allen +aller +alles + +als | than, as +also | so +am | an + dem +an | at + +ander | other +andere +anderem +anderen +anderer +anderes +anderm +andern +anderr +anders + +auch | also +auf | on +aus | out of +bei | by +bin | am +bis | until +bist | art +da | there +damit | with it +dann | then + +der | the +den +des +dem +die +das + +daß | that + +derselbe | the same +derselben +denselben +desselben +demselben +dieselbe +dieselben +dasselbe + +dazu | to that + +dein | thy +deine +deinem +deinen +deiner +deines + +denn | because + +derer | of those +dessen | of him + +dich | thee +dir | to thee +du | thou + +dies | this +diese +diesem +diesen +dieser +dieses + + +doch | (several meanings) +dort | (over) there + + +durch | through + +ein | a +eine +einem +einen +einer +eines + +einig | some +einige +einigem +einigen +einiger +einiges + +einmal | once + +er | he +ihn | him +ihm | to him + +es | it +etwas | something + +euer | your +eure +eurem +euren +eurer +eures + +für | for +gegen | towards +gewesen | p.p. of sein +hab | have +habe | have +haben | have +hat | has +hatte | had +hatten | had +hier | here +hin | there +hinter | behind + +ich | I +mich | me +mir | to me + + +ihr | you, to her +ihre +ihrem +ihren +ihrer +ihres +euch | to you + +im | in + dem +in | in +indem | while +ins | in + das +ist | is + +jede | each, every +jedem +jeden +jeder +jedes + +jene | that +jenem +jenen +jener +jenes + +jetzt | now +kann | can + +kein | no +keine +keinem +keinen +keiner +keines + +können | can +könnte | could +machen | do +man | one + +manche | some, many a +manchem +manchen +mancher +manches + +mein | my +meine +meinem +meinen +meiner +meines + +mit | with +muss | must +musste | had to +nach | to(wards) +nicht | not +nichts | nothing +noch | still, yet +nun | now +nur | only +ob | whether +oder | or +ohne | without +sehr | very + +sein | his +seine +seinem +seinen +seiner +seines + +selbst | self +sich | herself + +sie | they, she +ihnen | to them + +sind | are +so | so + +solche | such +solchem +solchen +solcher +solches + +soll | shall +sollte | should +sondern | but +sonst | else +über | over +um | about, around +und | and + +uns | us +unse +unsem +unsen +unser +unses + +unter | under +viel | much +vom | von + dem +von | from +vor | before +während | while +war | was +waren | were +warst | wast +was | what +weg | away, off +weil | because +weiter | further + +welche | which +welchem +welchen +welcher +welches + +wenn | when +werde | will +werden | will +wie | how +wieder | again +will | want +wir | we +wird | will +wirst | willst +wo | where +wollen | want +wollte | wanted +würde | would +würden | would +zu | to +zum | zu + dem +zur | zu + der +zwar | indeed +zwischen | between + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_el.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_el.txt new file mode 100644 index 0000000..232681f --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_el.txt @@ -0,0 +1,78 @@ +# Lucene Greek Stopwords list +# Note: by default this file is used after GreekLowerCaseFilter, +# so when modifying this file use 'σ' instead of 'ς' +ο +η +το +οι +τα +του +τησ +των +τον +την +και +κι +κ +ειμαι +εισαι +ειναι +ειμαστε +ειστε +στο +στον +στη +στην +μα +αλλα +απο +για +προσ +με +σε +ωσ +παρα +αντι +κατα +μετα +θα +να +δε +δεν +μη +μην +επι +ενω +εαν +αν +τοτε +που +πωσ +ποιοσ +ποια +ποιο +ποιοι +ποιεσ +ποιων +ποιουσ +αυτοσ +αυτη +αυτο +αυτοι +αυτων +αυτουσ +αυτεσ +αυτα +εκεινοσ +εκεινη +εκεινο +εκεινοι +εκεινεσ +εκεινα +εκεινων +εκεινουσ +οπωσ +ομωσ +ισωσ +οσο +οτι diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_en.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_en.txt new file mode 100644 index 0000000..2c164c0 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_en.txt @@ -0,0 +1,54 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# a couple of test stopwords to test that the words are really being +# configured from this file: +stopworda +stopwordb + +# Standard english stop words taken from Lucene's StopAnalyzer +a +an +and +are +as +at +be +but +by +for +if +in +into +is +it +no +not +of +on +or +such +that +the +their +then +there +these +they +this +to +was +will +with diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt new file mode 100644 index 0000000..2db1476 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt @@ -0,0 +1,354 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/spanish/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A Spanish stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + + + | The following is a ranked list (commonest to rarest) of stopwords + | deriving from a large sample of text. + + | Extra words have been added at the end. + +de | from, of +la | the, her +que | who, that +el | the +en | in +y | and +a | to +los | the, them +del | de + el +se | himself, from him etc +las | the, them +por | for, by, etc +un | a +para | for +con | with +no | no +una | a +su | his, her +al | a + el + | es from SER +lo | him +como | how +más | more +pero | pero +sus | su plural +le | to him, her +ya | already +o | or + | fue from SER +este | this + | ha from HABER +sí | himself etc +porque | because +esta | this + | son from SER +entre | between + | está from ESTAR +cuando | when +muy | very +sin | without +sobre | on + | ser from SER + | tiene from TENER +también | also +me | me +hasta | until +hay | there is/are +donde | where + | han from HABER +quien | whom, that + | están from ESTAR + | estado from ESTAR +desde | from +todo | all +nos | us +durante | during + | estados from ESTAR +todos | all +uno | a +les | to them +ni | nor +contra | against +otros | other + | fueron from SER +ese | that +eso | that + | había from HABER +ante | before +ellos | they +e | and (variant of y) +esto | this +mí | me +antes | before +algunos | some +qué | what? +unos | a +yo | I +otro | other +otras | other +otra | other +él | he +tanto | so much, many +esa | that +estos | these +mucho | much, many +quienes | who +nada | nothing +muchos | many +cual | who + | sea from SER +poco | few +ella | she +estar | to be + | haber from HABER +estas | these + | estaba from ESTAR + | estamos from ESTAR +algunas | some +algo | something +nosotros | we + + | other forms + +mi | me +mis | mi plural +tú | thou +te | thee +ti | thee +tu | thy +tus | tu plural +ellas | they +nosotras | we +vosotros | you +vosotras | you +os | you +mío | mine +mía | +míos | +mías | +tuyo | thine +tuya | +tuyos | +tuyas | +suyo | his, hers, theirs +suya | +suyos | +suyas | +nuestro | ours +nuestra | +nuestros | +nuestras | +vuestro | yours +vuestra | +vuestros | +vuestras | +esos | those +esas | those + + | forms of estar, to be (not including the infinitive): +estoy +estás +está +estamos +estáis +están +esté +estés +estemos +estéis +estén +estaré +estarás +estará +estaremos +estaréis +estarán +estaría +estarías +estaríamos +estaríais +estarían +estaba +estabas +estábamos +estabais +estaban +estuve +estuviste +estuvo +estuvimos +estuvisteis +estuvieron +estuviera +estuvieras +estuviéramos +estuvierais +estuvieran +estuviese +estuvieses +estuviésemos +estuvieseis +estuviesen +estando +estado +estada +estados +estadas +estad + + | forms of haber, to have (not including the infinitive): +he +has +ha +hemos +habéis +han +haya +hayas +hayamos +hayáis +hayan +habré +habrás +habrá +habremos +habréis +habrán +habría +habrías +habríamos +habríais +habrían +había +habías +habíamos +habíais +habían +hube +hubiste +hubo +hubimos +hubisteis +hubieron +hubiera +hubieras +hubiéramos +hubierais +hubieran +hubiese +hubieses +hubiésemos +hubieseis +hubiesen +habiendo +habido +habida +habidos +habidas + + | forms of ser, to be (not including the infinitive): +soy +eres +es +somos +sois +son +sea +seas +seamos +seáis +sean +seré +serás +será +seremos +seréis +serán +sería +serías +seríamos +seríais +serían +era +eras +éramos +erais +eran +fui +fuiste +fue +fuimos +fuisteis +fueron +fuera +fueras +fuéramos +fuerais +fueran +fuese +fueses +fuésemos +fueseis +fuesen +siendo +sido + | sed also means 'thirst' + + | forms of tener, to have (not including the infinitive): +tengo +tienes +tiene +tenemos +tenéis +tienen +tenga +tengas +tengamos +tengáis +tengan +tendré +tendrás +tendrá +tendremos +tendréis +tendrán +tendría +tendrías +tendríamos +tendríais +tendrían +tenía +tenías +teníamos +teníais +tenían +tuve +tuviste +tuvo +tuvimos +tuvisteis +tuvieron +tuviera +tuvieras +tuviéramos +tuvierais +tuvieran +tuviese +tuvieses +tuviésemos +tuvieseis +tuviesen +teniendo +tenido +tenida +tenidos +tenidas +tened + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_eu.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_eu.txt new file mode 100644 index 0000000..25f1db9 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_eu.txt @@ -0,0 +1,99 @@ +# example set of basque stopwords +al +anitz +arabera +asko +baina +bat +batean +batek +bati +batzuei +batzuek +batzuetan +batzuk +bera +beraiek +berau +berauek +bere +berori +beroriek +beste +bezala +da +dago +dira +ditu +du +dute +edo +egin +ere +eta +eurak +ez +gainera +gu +gutxi +guzti +haiei +haiek +haietan +hainbeste +hala +han +handik +hango +hara +hari +hark +hartan +hau +hauei +hauek +hauetan +hemen +hemendik +hemengo +hi +hona +honek +honela +honetan +honi +hor +hori +horiei +horiek +horietan +horko +horra +horrek +horrela +horretan +horri +hortik +hura +izan +ni +noiz +nola +non +nondik +nongo +nor +nora +ze +zein +zen +zenbait +zenbat +zer +zergatik +ziren +zituen +zu +zuek +zuen +zuten diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt new file mode 100644 index 0000000..723641c --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt @@ -0,0 +1,313 @@ +# This file was created by Jacques Savoy and is distributed under the BSD license. +# See http://members.unine.ch/jacques.savoy/clef/index.html. +# Also see http://www.opensource.org/licenses/bsd-license.html +# Note: by default this file is used after normalization, so when adding entries +# to this file, use the arabic 'ي' instead of 'ی' +انان +نداشته +سراسر +خياه +ايشان +وي +تاكنون +بيشتري +دوم +پس +ناشي +وگو +يا +داشتند +سپس +هنگام +هرگز +پنج +نشان +امسال +ديگر +گروهي +شدند +چطور +ده +و +دو +نخستين +ولي +چرا +چه +وسط +ه +كدام +قابل +يك +رفت +هفت +همچنين +در +هزار +بله +بلي +شايد +اما +شناسي +گرفته +دهد +داشته +دانست +داشتن +خواهيم +ميليارد +وقتيكه +امد +خواهد +جز +اورده +شده +بلكه +خدمات +شدن +برخي +نبود +بسياري +جلوگيري +حق +كردند +نوعي +بعري +نكرده +نظير +نبايد +بوده +بودن +داد +اورد +هست +جايي +شود +دنبال +داده +بايد +سابق +هيچ +همان +انجا +كمتر +كجاست +گردد +كسي +تر +مردم +تان +دادن +بودند +سري +جدا +ندارند +مگر +يكديگر +دارد +دهند +بنابراين +هنگامي +سمت +جا +انچه +خود +دادند +زياد +دارند +اثر +بدون +بهترين +بيشتر +البته +به +براساس +بيرون +كرد +بعضي +گرفت +توي +اي +ميليون +او +جريان +تول +بر +مانند +برابر +باشيم +مدتي +گويند +اكنون +تا +تنها +جديد +چند +بي +نشده +كردن +كردم +گويد +كرده +كنيم +نمي +نزد +روي +قصد +فقط +بالاي +ديگران +اين +ديروز +توسط +سوم +ايم +دانند +سوي +استفاده +شما +كنار +داريم +ساخته +طور +امده +رفته +نخست +بيست +نزديك +طي +كنيد +از +انها +تمامي +داشت +يكي +طريق +اش +چيست +روب +نمايد +گفت +چندين +چيزي +تواند +ام +ايا +با +ان +ايد +ترين +اينكه +ديگري +راه +هايي +بروز +همچنان +پاعين +كس +حدود +مختلف +مقابل +چيز +گيرد +ندارد +ضد +همچون +سازي +شان +مورد +باره +مرسي +خويش +برخوردار +چون +خارج +شش +هنوز +تحت +ضمن +هستيم +گفته +فكر +بسيار +پيش +براي +روزهاي +انكه +نخواهد +بالا +كل +وقتي +كي +چنين +كه +گيري +نيست +است +كجا +كند +نيز +يابد +بندي +حتي +توانند +عقب +خواست +كنند +بين +تمام +همه +ما +باشند +مثل +شد +اري +باشد +اره +طبق +بعد +اگر +صورت +غير +جاي +بيش +ريزي +اند +زيرا +چگونه +بار +لطفا +مي +درباره +من +ديده +همين +گذاري +برداري +علت +گذاشته +هم +فوق +نه +ها +شوند +اباد +همواره +هر +اول +خواهند +چهار +نام +امروز +مان +هاي +قبل +كنم +سعي +تازه +را +هستند +زير +جلوي +عنوان +بود diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt new file mode 100644 index 0000000..addad79 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt @@ -0,0 +1,95 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/finnish/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + +| forms of BE + +olla +olen +olet +on +olemme +olette +ovat +ole | negative form + +oli +olisi +olisit +olisin +olisimme +olisitte +olisivat +olit +olin +olimme +olitte +olivat +ollut +olleet + +en | negation +et +ei +emme +ette +eivät + +|Nom Gen Acc Part Iness Elat Illat Adess Ablat Allat Ess Trans +minä minun minut minua minussa minusta minuun minulla minulta minulle | I +sinä sinun sinut sinua sinussa sinusta sinuun sinulla sinulta sinulle | you +hän hänen hänet häntä hänessä hänestä häneen hänellä häneltä hänelle | he she +me meidän meidät meitä meissä meistä meihin meillä meiltä meille | we +te teidän teidät teitä teissä teistä teihin teillä teiltä teille | you +he heidän heidät heitä heissä heistä heihin heillä heiltä heille | they + +tämä tämän tätä tässä tästä tähän tallä tältä tälle tänä täksi | this +tuo tuon tuotä tuossa tuosta tuohon tuolla tuolta tuolle tuona tuoksi | that +se sen sitä siinä siitä siihen sillä siltä sille sinä siksi | it +nämä näiden näitä näissä näistä näihin näillä näiltä näille näinä näiksi | these +nuo noiden noita noissa noista noihin noilla noilta noille noina noiksi | those +ne niiden niitä niissä niistä niihin niillä niiltä niille niinä niiksi | they + +kuka kenen kenet ketä kenessä kenestä keneen kenellä keneltä kenelle kenenä keneksi| who +ketkä keiden ketkä keitä keissä keistä keihin keillä keiltä keille keinä keiksi | (pl) +mikä minkä minkä mitä missä mistä mihin millä miltä mille minä miksi | which what +mitkä | (pl) + +joka jonka jota jossa josta johon jolla jolta jolle jona joksi | who which +jotka joiden joita joissa joista joihin joilla joilta joille joina joiksi | (pl) + +| conjunctions + +että | that +ja | and +jos | if +koska | because +kuin | than +mutta | but +niin | so +sekä | and +sillä | for +tai | or +vaan | but +vai | or +vaikka | although + + +| prepositions + +kanssa | with +mukaan | according to +noin | about +poikki | across +yli | over, across + +| other + +kun | when +niin | so +nyt | now +itse | self + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt new file mode 100644 index 0000000..c00837e --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt @@ -0,0 +1,183 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/french/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A French stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + +au | a + le +aux | a + les +avec | with +ce | this +ces | these +dans | with +de | of +des | de + les +du | de + le +elle | she +en | `of them' etc +et | and +eux | them +il | he +je | I +la | the +le | the +leur | their +lui | him +ma | my (fem) +mais | but +me | me +même | same; as in moi-même (myself) etc +mes | me (pl) +moi | me +mon | my (masc) +ne | not +nos | our (pl) +notre | our +nous | we +on | one +ou | where +par | by +pas | not +pour | for +qu | que before vowel +que | that +qui | who +sa | his, her (fem) +se | oneself +ses | his (pl) +son | his, her (masc) +sur | on +ta | thy (fem) +te | thee +tes | thy (pl) +toi | thee +ton | thy (masc) +tu | thou +un | a +une | a +vos | your (pl) +votre | your +vous | you + + | single letter forms + +c | c' +d | d' +j | j' +l | l' +à | to, at +m | m' +n | n' +s | s' +t | t' +y | there + + | forms of être (not including the infinitive): +été +étée +étées +étés +étant +suis +es +est +sommes +êtes +sont +serai +seras +sera +serons +serez +seront +serais +serait +serions +seriez +seraient +étais +était +étions +étiez +étaient +fus +fut +fûmes +fûtes +furent +sois +soit +soyons +soyez +soient +fusse +fusses +fût +fussions +fussiez +fussent + + | forms of avoir (not including the infinitive): +ayant +eu +eue +eues +eus +ai +as +avons +avez +ont +aurai +auras +aura +aurons +aurez +auront +aurais +aurait +aurions +auriez +auraient +avais +avait +avions +aviez +avaient +eut +eûmes +eûtes +eurent +aie +aies +ait +ayons +ayez +aient +eusse +eusses +eût +eussions +eussiez +eussent + + | Later additions (from Jean-Christophe Deschamps) +ceci | this +celà  | that +cet | this +cette | this +ici | here +ils | they +les | the (pl) +leurs | their (pl) +quel | which +quels | which +quelle | which +quelles | which +sans | without +soi | oneself + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ga.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ga.txt new file mode 100644 index 0000000..9ff88d7 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ga.txt @@ -0,0 +1,110 @@ + +a +ach +ag +agus +an +aon +ar +arna +as +b' +ba +beirt +bhúr +caoga +ceathair +ceathrar +chomh +chtó +chuig +chun +cois +céad +cúig +cúigear +d' +daichead +dar +de +deich +deichniúr +den +dhá +do +don +dtí +dá +dár +dó +faoi +faoin +faoina +faoinár +fara +fiche +gach +gan +go +gur +haon +hocht +i +iad +idir +in +ina +ins +inár +is +le +leis +lena +lenár +m' +mar +mo +mé +na +nach +naoi +naonúr +ná +ní +níor +nó +nócha +ocht +ochtar +os +roimh +sa +seacht +seachtar +seachtó +seasca +seisear +siad +sibh +sinn +sna +sé +sí +tar +thar +thú +triúr +trí +trína +trínár +tríocha +tú +um +ár +é +éis +í +ó +ón +óna +ónár diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_gl.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_gl.txt new file mode 100644 index 0000000..d8760b1 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_gl.txt @@ -0,0 +1,161 @@ +# galican stopwords +a +aínda +alí +aquel +aquela +aquelas +aqueles +aquilo +aquí +ao +aos +as +así +á +ben +cando +che +co +coa +comigo +con +connosco +contigo +convosco +coas +cos +cun +cuns +cunha +cunhas +da +dalgunha +dalgunhas +dalgún +dalgúns +das +de +del +dela +delas +deles +desde +deste +do +dos +dun +duns +dunha +dunhas +e +el +ela +elas +eles +en +era +eran +esa +esas +ese +eses +esta +estar +estaba +está +están +este +estes +estiven +estou +eu +é +facer +foi +foron +fun +había +hai +iso +isto +la +las +lle +lles +lo +los +mais +me +meu +meus +min +miña +miñas +moi +na +nas +neste +nin +no +non +nos +nosa +nosas +noso +nosos +nós +nun +nunha +nuns +nunhas +o +os +ou +ó +ós +para +pero +pode +pois +pola +polas +polo +polos +por +que +se +senón +ser +seu +seus +sexa +sido +sobre +súa +súas +tamén +tan +te +ten +teñen +teño +ter +teu +teus +ti +tido +tiña +tiven +túa +túas +un +unha +unhas +uns +vos +vosa +vosas +voso +vosos +vós diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt new file mode 100644 index 0000000..86286bb --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt @@ -0,0 +1,235 @@ +# Also see http://www.opensource.org/licenses/bsd-license.html +# See http://members.unine.ch/jacques.savoy/clef/index.html. +# This file was created by Jacques Savoy and is distributed under the BSD license. +# Note: by default this file also contains forms normalized by HindiNormalizer +# for spelling variation (see section below), such that it can be used whether or +# not you enable that feature. When adding additional entries to this list, +# please add the normalized form as well. +अंदर +अत +अपना +अपनी +अपने +अभी +आदि +आप +इत्यादि +इन +इनका +इन्हीं +इन्हें +इन्हों +इस +इसका +इसकी +इसके +इसमें +इसी +इसे +उन +उनका +उनकी +उनके +उनको +उन्हीं +उन्हें +उन्हों +उस +उसके +उसी +उसे +एक +एवं +एस +ऐसे +और +कई +कर +करता +करते +करना +करने +करें +कहते +कहा +का +काफ़ी +कि +कितना +किन्हें +किन्हों +किया +किर +किस +किसी +किसे +की +कुछ +कुल +के +को +कोई +कौन +कौनसा +गया +घर +जब +जहाँ +जा +जितना +जिन +जिन्हें +जिन्हों +जिस +जिसे +जीधर +जैसा +जैसे +जो +तक +तब +तरह +तिन +तिन्हें +तिन्हों +तिस +तिसे +तो +था +थी +थे +दबारा +दिया +दुसरा +दूसरे +दो +द्वारा +न +नहीं +ना +निहायत +नीचे +ने +पर +पर +पहले +पूरा +पे +फिर +बनी +बही +बहुत +बाद +बाला +बिलकुल +भी +भीतर +मगर +मानो +मे +में +यदि +यह +यहाँ +यही +या +यिह +ये +रखें +रहा +रहे +ऱ्वासा +लिए +लिये +लेकिन +व +वर्ग +वह +वह +वहाँ +वहीं +वाले +वुह +वे +वग़ैरह +संग +सकता +सकते +सबसे +सभी +साथ +साबुत +साभ +सारा +से +सो +ही +हुआ +हुई +हुए +है +हैं +हो +होता +होती +होते +होना +होने +# additional normalized forms of the above +अपनि +जेसे +होति +सभि +तिंहों +इंहों +दवारा +इसि +किंहें +थि +उंहों +ओर +जिंहें +वहिं +अभि +बनि +हि +उंहिं +उंहें +हें +वगेरह +एसे +रवासा +कोन +निचे +काफि +उसि +पुरा +भितर +हे +बहि +वहां +कोइ +यहां +जिंहों +तिंहें +किसि +कइ +यहि +इंहिं +जिधर +इंहें +अदि +इतयादि +हुइ +कोनसा +इसकि +दुसरे +जहां +अप +किंहों +उनकि +भि +वरग +हुअ +जेसा +नहिं diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt new file mode 100644 index 0000000..1a96f1d --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt @@ -0,0 +1,209 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/hungarian/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + +| Hungarian stop word list +| prepared by Anna Tordai + +a +ahogy +ahol +aki +akik +akkor +alatt +által +általában +amely +amelyek +amelyekben +amelyeket +amelyet +amelynek +ami +amit +amolyan +amíg +amikor +át +abban +ahhoz +annak +arra +arról +az +azok +azon +azt +azzal +azért +aztán +azután +azonban +bár +be +belül +benne +cikk +cikkek +cikkeket +csak +de +e +eddig +egész +egy +egyes +egyetlen +egyéb +egyik +egyre +ekkor +el +elég +ellen +elő +először +előtt +első +én +éppen +ebben +ehhez +emilyen +ennek +erre +ez +ezt +ezek +ezen +ezzel +ezért +és +fel +felé +hanem +hiszen +hogy +hogyan +igen +így +illetve +ill. +ill +ilyen +ilyenkor +ison +ismét +itt +jó +jól +jobban +kell +kellett +keresztül +keressünk +ki +kívül +között +közül +legalább +lehet +lehetett +legyen +lenne +lenni +lesz +lett +maga +magát +majd +majd +már +más +másik +meg +még +mellett +mert +mely +melyek +mi +mit +míg +miért +milyen +mikor +minden +mindent +mindenki +mindig +mint +mintha +mivel +most +nagy +nagyobb +nagyon +ne +néha +nekem +neki +nem +néhány +nélkül +nincs +olyan +ott +össze +ő +ők +őket +pedig +persze +rá +s +saját +sem +semmi +sok +sokat +sokkal +számára +szemben +szerint +szinte +talán +tehát +teljes +tovább +továbbá +több +úgy +ugyanis +új +újabb +újra +után +utána +utolsó +vagy +vagyis +valaki +valami +valamint +való +vagyok +van +vannak +volt +voltam +voltak +voltunk +vissza +vele +viszont +volna diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hy.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hy.txt new file mode 100644 index 0000000..60c1c50 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hy.txt @@ -0,0 +1,46 @@ +# example set of Armenian stopwords. +այդ +այլ +այն +այս +դու +դուք +եմ +են +ենք +ես +եք +է +էի +էին +էինք +էիր +էիք +էր +ըստ +թ +ի +ին +իսկ +իր +կամ +համար +հետ +հետո +մենք +մեջ +մի +ն +նա +նաև +նրա +նրանք +որ +որը +որոնք +որպես +ու +ում +պիտի +վրա +և diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_id.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_id.txt new file mode 100644 index 0000000..4617f83 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_id.txt @@ -0,0 +1,359 @@ +# from appendix D of: A Study of Stemming Effects on Information +# Retrieval in Bahasa Indonesia +ada +adanya +adalah +adapun +agak +agaknya +agar +akan +akankah +akhirnya +aku +akulah +amat +amatlah +anda +andalah +antar +diantaranya +antara +antaranya +diantara +apa +apaan +mengapa +apabila +apakah +apalagi +apatah +atau +ataukah +ataupun +bagai +bagaikan +sebagai +sebagainya +bagaimana +bagaimanapun +sebagaimana +bagaimanakah +bagi +bahkan +bahwa +bahwasanya +sebaliknya +banyak +sebanyak +beberapa +seberapa +begini +beginian +beginikah +beginilah +sebegini +begitu +begitukah +begitulah +begitupun +sebegitu +belum +belumlah +sebelum +sebelumnya +sebenarnya +berapa +berapakah +berapalah +berapapun +betulkah +sebetulnya +biasa +biasanya +bila +bilakah +bisa +bisakah +sebisanya +boleh +bolehkah +bolehlah +buat +bukan +bukankah +bukanlah +bukannya +cuma +percuma +dahulu +dalam +dan +dapat +dari +daripada +dekat +demi +demikian +demikianlah +sedemikian +dengan +depan +di +dia +dialah +dini +diri +dirinya +terdiri +dong +dulu +enggak +enggaknya +entah +entahlah +terhadap +terhadapnya +hal +hampir +hanya +hanyalah +harus +haruslah +harusnya +seharusnya +hendak +hendaklah +hendaknya +hingga +sehingga +ia +ialah +ibarat +ingin +inginkah +inginkan +ini +inikah +inilah +itu +itukah +itulah +jangan +jangankan +janganlah +jika +jikalau +juga +justru +kala +kalau +kalaulah +kalaupun +kalian +kami +kamilah +kamu +kamulah +kan +kapan +kapankah +kapanpun +dikarenakan +karena +karenanya +ke +kecil +kemudian +kenapa +kepada +kepadanya +ketika +seketika +khususnya +kini +kinilah +kiranya +sekiranya +kita +kitalah +kok +lagi +lagian +selagi +lah +lain +lainnya +melainkan +selaku +lalu +melalui +terlalu +lama +lamanya +selama +selama +selamanya +lebih +terlebih +bermacam +macam +semacam +maka +makanya +makin +malah +malahan +mampu +mampukah +mana +manakala +manalagi +masih +masihkah +semasih +masing +mau +maupun +semaunya +memang +mereka +merekalah +meski +meskipun +semula +mungkin +mungkinkah +nah +namun +nanti +nantinya +nyaris +oleh +olehnya +seorang +seseorang +pada +padanya +padahal +paling +sepanjang +pantas +sepantasnya +sepantasnyalah +para +pasti +pastilah +per +pernah +pula +pun +merupakan +rupanya +serupa +saat +saatnya +sesaat +saja +sajalah +saling +bersama +sama +sesama +sambil +sampai +sana +sangat +sangatlah +saya +sayalah +se +sebab +sebabnya +sebuah +tersebut +tersebutlah +sedang +sedangkan +sedikit +sedikitnya +segala +segalanya +segera +sesegera +sejak +sejenak +sekali +sekalian +sekalipun +sesekali +sekaligus +sekarang +sekarang +sekitar +sekitarnya +sela +selain +selalu +seluruh +seluruhnya +semakin +sementara +sempat +semua +semuanya +sendiri +sendirinya +seolah +seperti +sepertinya +sering +seringnya +serta +siapa +siapakah +siapapun +disini +disinilah +sini +sinilah +sesuatu +sesuatunya +suatu +sesudah +sesudahnya +sudah +sudahkah +sudahlah +supaya +tadi +tadinya +tak +tanpa +setelah +telah +tentang +tentu +tentulah +tentunya +tertentu +seterusnya +tapi +tetapi +setiap +tiap +setidaknya +tidak +tidakkah +tidaklah +toh +waduh +wah +wahai +sewaktu +walau +walaupun +wong +yaitu +yakni +yang diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt new file mode 100644 index 0000000..4cb5b08 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt @@ -0,0 +1,301 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/italian/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | An Italian stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + +ad | a (to) before vowel +al | a + il +allo | a + lo +ai | a + i +agli | a + gli +all | a + l' +agl | a + gl' +alla | a + la +alle | a + le +con | with +col | con + il +coi | con + i (forms collo, cogli etc are now very rare) +da | from +dal | da + il +dallo | da + lo +dai | da + i +dagli | da + gli +dall | da + l' +dagl | da + gll' +dalla | da + la +dalle | da + le +di | of +del | di + il +dello | di + lo +dei | di + i +degli | di + gli +dell | di + l' +degl | di + gl' +della | di + la +delle | di + le +in | in +nel | in + el +nello | in + lo +nei | in + i +negli | in + gli +nell | in + l' +negl | in + gl' +nella | in + la +nelle | in + le +su | on +sul | su + il +sullo | su + lo +sui | su + i +sugli | su + gli +sull | su + l' +sugl | su + gl' +sulla | su + la +sulle | su + le +per | through, by +tra | among +contro | against +io | I +tu | thou +lui | he +lei | she +noi | we +voi | you +loro | they +mio | my +mia | +miei | +mie | +tuo | +tua | +tuoi | thy +tue | +suo | +sua | +suoi | his, her +sue | +nostro | our +nostra | +nostri | +nostre | +vostro | your +vostra | +vostri | +vostre | +mi | me +ti | thee +ci | us, there +vi | you, there +lo | him, the +la | her, the +li | them +le | them, the +gli | to him, the +ne | from there etc +il | the +un | a +uno | a +una | a +ma | but +ed | and +se | if +perché | why, because +anche | also +come | how +dov | where (as dov') +dove | where +che | who, that +chi | who +cui | whom +non | not +più | more +quale | who, that +quanto | how much +quanti | +quanta | +quante | +quello | that +quelli | +quella | +quelle | +questo | this +questi | +questa | +queste | +si | yes +tutto | all +tutti | all + + | single letter forms: + +a | at +c | as c' for ce or ci +e | and +i | the +l | as l' +o | or + + | forms of avere, to have (not including the infinitive): + +ho +hai +ha +abbiamo +avete +hanno +abbia +abbiate +abbiano +avrò +avrai +avrà +avremo +avrete +avranno +avrei +avresti +avrebbe +avremmo +avreste +avrebbero +avevo +avevi +aveva +avevamo +avevate +avevano +ebbi +avesti +ebbe +avemmo +aveste +ebbero +avessi +avesse +avessimo +avessero +avendo +avuto +avuta +avuti +avute + + | forms of essere, to be (not including the infinitive): +sono +sei +è +siamo +siete +sia +siate +siano +sarò +sarai +sarà +saremo +sarete +saranno +sarei +saresti +sarebbe +saremmo +sareste +sarebbero +ero +eri +era +eravamo +eravate +erano +fui +fosti +fu +fummo +foste +furono +fossi +fosse +fossimo +fossero +essendo + + | forms of fare, to do (not including the infinitive, fa, fat-): +faccio +fai +facciamo +fanno +faccia +facciate +facciano +farò +farai +farà +faremo +farete +faranno +farei +faresti +farebbe +faremmo +fareste +farebbero +facevo +facevi +faceva +facevamo +facevate +facevano +feci +facesti +fece +facemmo +faceste +fecero +facessi +facesse +facessimo +facessero +facendo + + | forms of stare, to be (not including the infinitive): +sto +stai +sta +stiamo +stanno +stia +stiate +stiano +starò +starai +starà +staremo +starete +staranno +starei +staresti +starebbe +staremmo +stareste +starebbero +stavo +stavi +stava +stavamo +stavate +stavano +stetti +stesti +stette +stemmo +steste +stettero +stessi +stesse +stessimo +stessero +stando diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ja.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ja.txt new file mode 100644 index 0000000..d4321be --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ja.txt @@ -0,0 +1,127 @@ +# +# This file defines a stopword set for Japanese. +# +# This set is made up of hand-picked frequent terms from segmented Japanese Wikipedia. +# Punctuation characters and frequent kanji have mostly been left out. See LUCENE-3745 +# for frequency lists, etc. that can be useful for making your own set (if desired) +# +# Note that there is an overlap between these stopwords and the terms stopped when used +# in combination with the JapanesePartOfSpeechStopFilter. When editing this file, note +# that comments are not allowed on the same line as stopwords. +# +# Also note that stopping is done in a case-insensitive manner. Change your StopFilter +# configuration if you need case-sensitive stopping. Lastly, note that stopping is done +# using the same character width as the entries in this file. Since this StopFilter is +# normally done after a CJKWidthFilter in your chain, you would usually want your romaji +# entries to be in half-width and your kana entries to be in full-width. +# +の +に +は +を +た +が +で +て +と +し +れ +さ +ある +いる +も +する +から +な +こと +として +い +や +れる +など +なっ +ない +この +ため +その +あっ +よう +また +もの +という +あり +まで +られ +なる +へ +か +だ +これ +によって +により +おり +より +による +ず +なり +られる +において +ば +なかっ +なく +しかし +について +せ +だっ +その後 +できる +それ +う +ので +なお +のみ +でき +き +つ +における +および +いう +さらに +でも +ら +たり +その他 +に関する +たち +ます +ん +なら +に対して +特に +せる +及び +これら +とき +では +にて +ほか +ながら +うち +そして +とともに +ただし +かつて +それぞれ +または +お +ほど +ものの +に対する +ほとんど +と共に +といった +です +とも +ところ +ここ +##### End of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_lv.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_lv.txt new file mode 100644 index 0000000..e21a23c --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_lv.txt @@ -0,0 +1,172 @@ +# Set of Latvian stopwords from A Stemming Algorithm for Latvian, Karlis Kreslins +# the original list of over 800 forms was refined: +# pronouns, adverbs, interjections were removed +# +# prepositions +aiz +ap +ar +apakš +ārpus +augšpus +bez +caur +dēļ +gar +iekš +iz +kopš +labad +lejpus +līdz +no +otrpus +pa +par +pār +pēc +pie +pirms +pret +priekš +starp +šaipus +uz +viņpus +virs +virspus +zem +apakšpus +# Conjunctions +un +bet +jo +ja +ka +lai +tomēr +tikko +turpretī +arī +kaut +gan +tādēļ +tā +ne +tikvien +vien +kā +ir +te +vai +kamēr +# Particles +ar +diezin +droši +diemžēl +nebūt +ik +it +taču +nu +pat +tiklab +iekšpus +nedz +tik +nevis +turpretim +jeb +iekam +iekām +iekāms +kolīdz +līdzko +tiklīdz +jebšu +tālab +tāpēc +nekā +itin +jā +jau +jel +nē +nezin +tad +tikai +vis +tak +iekams +vien +# modal verbs +būt +biju +biji +bija +bijām +bijāt +esmu +esi +esam +esat +būšu +būsi +būs +būsim +būsiet +tikt +tiku +tiki +tika +tikām +tikāt +tieku +tiec +tiek +tiekam +tiekat +tikšu +tiks +tiksim +tiksiet +tapt +tapi +tapāt +topat +tapšu +tapsi +taps +tapsim +tapsiet +kļūt +kļuvu +kļuvi +kļuva +kļuvām +kļuvāt +kļūstu +kļūsti +kļūst +kļūstam +kļūstat +kļūšu +kļūsi +kļūs +kļūsim +kļūsiet +# verbs +varēt +varēju +varējām +varēšu +varēsim +var +varēji +varējāt +varēsi +varēsiet +varat +varēja +varēs diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt new file mode 100644 index 0000000..f4d61f5 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt @@ -0,0 +1,117 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/dutch/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A Dutch stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + + | This is a ranked list (commonest to rarest) of stopwords derived from + | a large sample of Dutch text. + + | Dutch stop words frequently exhibit homonym clashes. These are indicated + | clearly below. + +de | the +en | and +van | of, from +ik | I, the ego +te | (1) chez, at etc, (2) to, (3) too +dat | that, which +die | that, those, who, which +in | in, inside +een | a, an, one +hij | he +het | the, it +niet | not, nothing, naught +zijn | (1) to be, being, (2) his, one's, its +is | is +was | (1) was, past tense of all persons sing. of 'zijn' (to be) (2) wax, (3) the washing, (4) rise of river +op | on, upon, at, in, up, used up +aan | on, upon, to (as dative) +met | with, by +als | like, such as, when +voor | (1) before, in front of, (2) furrow +had | had, past tense all persons sing. of 'hebben' (have) +er | there +maar | but, only +om | round, about, for etc +hem | him +dan | then +zou | should/would, past tense all persons sing. of 'zullen' +of | or, whether, if +wat | what, something, anything +mijn | possessive and noun 'mine' +men | people, 'one' +dit | this +zo | so, thus, in this way +door | through by +over | over, across +ze | she, her, they, them +zich | oneself +bij | (1) a bee, (2) by, near, at +ook | also, too +tot | till, until +je | you +mij | me +uit | out of, from +der | Old Dutch form of 'van der' still found in surnames +daar | (1) there, (2) because +haar | (1) her, their, them, (2) hair +naar | (1) unpleasant, unwell etc, (2) towards, (3) as +heb | present first person sing. of 'to have' +hoe | how, why +heeft | present third person sing. of 'to have' +hebben | 'to have' and various parts thereof +deze | this +u | you +want | (1) for, (2) mitten, (3) rigging +nog | yet, still +zal | 'shall', first and third person sing. of verb 'zullen' (will) +me | me +zij | she, they +nu | now +ge | 'thou', still used in Belgium and south Netherlands +geen | none +omdat | because +iets | something, somewhat +worden | to become, grow, get +toch | yet, still +al | all, every, each +waren | (1) 'were' (2) to wander, (3) wares, (3) +veel | much, many +meer | (1) more, (2) lake +doen | to do, to make +toen | then, when +moet | noun 'spot/mote' and present form of 'to must' +ben | (1) am, (2) 'are' in interrogative second person singular of 'to be' +zonder | without +kan | noun 'can' and present form of 'to be able' +hun | their, them +dus | so, consequently +alles | all, everything, anything +onder | under, beneath +ja | yes, of course +eens | once, one day +hier | here +wie | who +werd | imperfect third person sing. of 'become' +altijd | always +doch | yet, but etc +wordt | present third person sing. of 'become' +wezen | (1) to be, (2) 'been' as in 'been fishing', (3) orphans +kunnen | to be able +ons | us/our +zelf | self +tegen | against, towards, at +na | after, near +reeds | already +wil | (1) present tense of 'want', (2) 'will', noun, (3) fender +kon | could; past tense of 'to be able' +niets | nothing +uw | your +iemand | somebody +geweest | been; past participle of 'be' +andere | other diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt new file mode 100644 index 0000000..e76f36e --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt @@ -0,0 +1,192 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/norwegian/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A Norwegian stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + + | This stop word list is for the dominant bokmål dialect. Words unique + | to nynorsk are marked *. + + | Revised by Jan Bruusgaard , Jan 2005 + +og | and +i | in +jeg | I +det | it/this/that +at | to (w. inf.) +en | a/an +et | a/an +den | it/this/that +til | to +er | is/am/are +som | who/that +på | on +de | they / you(formal) +med | with +han | he +av | of +ikke | not +ikkje | not * +der | there +så | so +var | was/were +meg | me +seg | you +men | but +ett | one +har | have +om | about +vi | we +min | my +mitt | my +ha | have +hadde | had +hun | she +nå | now +over | over +da | when/as +ved | by/know +fra | from +du | you +ut | out +sin | your +dem | them +oss | us +opp | up +man | you/one +kan | can +hans | his +hvor | where +eller | or +hva | what +skal | shall/must +selv | self (reflective) +sjøl | self (reflective) +her | here +alle | all +vil | will +bli | become +ble | became +blei | became * +blitt | have become +kunne | could +inn | in +når | when +være | be +kom | come +noen | some +noe | some +ville | would +dere | you +som | who/which/that +deres | their/theirs +kun | only/just +ja | yes +etter | after +ned | down +skulle | should +denne | this +for | for/because +deg | you +si | hers/his +sine | hers/his +sitt | hers/his +mot | against +å | to +meget | much +hvorfor | why +dette | this +disse | these/those +uten | without +hvordan | how +ingen | none +din | your +ditt | your +blir | become +samme | same +hvilken | which +hvilke | which (plural) +sånn | such a +inni | inside/within +mellom | between +vår | our +hver | each +hvem | who +vors | us/ours +hvis | whose +både | both +bare | only/just +enn | than +fordi | as/because +før | before +mange | many +også | also +slik | just +vært | been +være | to be +båe | both * +begge | both +siden | since +dykk | your * +dykkar | yours * +dei | they * +deira | them * +deires | theirs * +deim | them * +di | your (fem.) * +då | as/when * +eg | I * +ein | a/an * +eit | a/an * +eitt | a/an * +elles | or * +honom | he * +hjå | at * +ho | she * +hoe | she * +henne | her +hennar | her/hers +hennes | hers +hoss | how * +hossen | how * +ikkje | not * +ingi | noone * +inkje | noone * +korleis | how * +korso | how * +kva | what/which * +kvar | where * +kvarhelst | where * +kven | who/whom * +kvi | why * +kvifor | why * +me | we * +medan | while * +mi | my * +mine | my * +mykje | much * +no | now * +nokon | some (masc./neut.) * +noka | some (fem.) * +nokor | some * +noko | some * +nokre | some * +si | his/hers * +sia | since * +sidan | since * +so | so * +somt | some * +somme | some * +um | about* +upp | up * +vere | be * +vore | was * +verte | become * +vort | become * +varte | became * +vart | became * + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt new file mode 100644 index 0000000..276c1b4 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt @@ -0,0 +1,251 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/portuguese/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A Portuguese stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + + + | The following is a ranked list (commonest to rarest) of stopwords + | deriving from a large sample of text. + + | Extra words have been added at the end. + +de | of, from +a | the; to, at; her +o | the; him +que | who, that +e | and +do | de + o +da | de + a +em | in +um | a +para | for + | é from SER +com | with +não | not, no +uma | a +os | the; them +no | em + o +se | himself etc +na | em + a +por | for +mais | more +as | the; them +dos | de + os +como | as, like +mas | but + | foi from SER +ao | a + o +ele | he +das | de + as + | tem from TER +à | a + a +seu | his +sua | her +ou | or + | ser from SER +quando | when +muito | much + | há from HAV +nos | em + os; us +já | already, now + | está from EST +eu | I +também | also +só | only, just +pelo | per + o +pela | per + a +até | up to +isso | that +ela | he +entre | between + | era from SER +depois | after +sem | without +mesmo | same +aos | a + os + | ter from TER +seus | his +quem | whom +nas | em + as +me | me +esse | that +eles | they + | estão from EST +você | you + | tinha from TER + | foram from SER +essa | that +num | em + um +nem | nor +suas | her +meu | my +às | a + as +minha | my + | têm from TER +numa | em + uma +pelos | per + os +elas | they + | havia from HAV + | seja from SER +qual | which + | será from SER +nós | we + | tenho from TER +lhe | to him, her +deles | of them +essas | those +esses | those +pelas | per + as +este | this + | fosse from SER +dele | of him + + | other words. There are many contractions such as naquele = em+aquele, + | mo = me+o, but they are rare. + | Indefinite article plural forms are also rare. + +tu | thou +te | thee +vocês | you (plural) +vos | you +lhes | to them +meus | my +minhas +teu | thy +tua +teus +tuas +nosso | our +nossa +nossos +nossas + +dela | of her +delas | of them + +esta | this +estes | these +estas | these +aquele | that +aquela | that +aqueles | those +aquelas | those +isto | this +aquilo | that + + | forms of estar, to be (not including the infinitive): +estou +está +estamos +estão +estive +esteve +estivemos +estiveram +estava +estávamos +estavam +estivera +estivéramos +esteja +estejamos +estejam +estivesse +estivéssemos +estivessem +estiver +estivermos +estiverem + + | forms of haver, to have (not including the infinitive): +hei +há +havemos +hão +houve +houvemos +houveram +houvera +houvéramos +haja +hajamos +hajam +houvesse +houvéssemos +houvessem +houver +houvermos +houverem +houverei +houverá +houveremos +houverão +houveria +houveríamos +houveriam + + | forms of ser, to be (not including the infinitive): +sou +somos +são +era +éramos +eram +fui +foi +fomos +foram +fora +fôramos +seja +sejamos +sejam +fosse +fôssemos +fossem +for +formos +forem +serei +será +seremos +serão +seria +seríamos +seriam + + | forms of ter, to have (not including the infinitive): +tenho +tem +temos +tém +tinha +tínhamos +tinham +tive +teve +tivemos +tiveram +tivera +tivéramos +tenha +tenhamos +tenham +tivesse +tivéssemos +tivessem +tiver +tivermos +tiverem +terei +terá +teremos +terão +teria +teríamos +teriam diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt new file mode 100644 index 0000000..4fdee90 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt @@ -0,0 +1,233 @@ +# This file was created by Jacques Savoy and is distributed under the BSD license. +# See http://members.unine.ch/jacques.savoy/clef/index.html. +# Also see http://www.opensource.org/licenses/bsd-license.html +acea +aceasta +această +aceea +acei +aceia +acel +acela +acele +acelea +acest +acesta +aceste +acestea +aceşti +aceştia +acolo +acum +ai +aia +aibă +aici +al +ăla +ale +alea +ălea +altceva +altcineva +am +ar +are +aş +aşadar +asemenea +asta +ăsta +astăzi +astea +ăstea +ăştia +asupra +aţi +au +avea +avem +aveţi +azi +bine +bucur +bună +ca +că +căci +când +care +cărei +căror +cărui +cât +câte +câţi +către +câtva +ce +cel +ceva +chiar +cînd +cine +cineva +cît +cîte +cîţi +cîtva +contra +cu +cum +cumva +curând +curînd +da +dă +dacă +dar +datorită +de +deci +deja +deoarece +departe +deşi +din +dinaintea +dintr +dintre +drept +după +ea +ei +el +ele +eram +este +eşti +eu +face +fără +fi +fie +fiecare +fii +fim +fiţi +iar +ieri +îi +îl +îmi +împotriva +în +înainte +înaintea +încât +încît +încotro +între +întrucât +întrucît +îţi +la +lângă +le +li +lîngă +lor +lui +mă +mâine +mea +mei +mele +mereu +meu +mi +mine +mult +multă +mulţi +ne +nicăieri +nici +nimeni +nişte +noastră +noastre +noi +noştri +nostru +nu +ori +oricând +oricare +oricât +orice +oricînd +oricine +oricît +oricum +oriunde +până +pe +pentru +peste +pînă +poate +pot +prea +prima +primul +prin +printr +sa +să +săi +sale +sau +său +se +şi +sînt +sîntem +sînteţi +spre +sub +sunt +suntem +sunteţi +ta +tăi +tale +tău +te +ţi +ţie +tine +toată +toate +tot +toţi +totuşi +tu +un +una +unde +undeva +unei +unele +uneori +unor +vă +vi +voastră +voastre +voi +voştri +vostru +vouă +vreo +vreun diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt new file mode 100644 index 0000000..6430769 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt @@ -0,0 +1,241 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/russian/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | a russian stop word list. comments begin with vertical bar. each stop + | word is at the start of a line. + + | this is a ranked list (commonest to rarest) of stopwords derived from + | a large text sample. + + | letter `ё' is translated to `е'. + +и | and +в | in/into +во | alternative form +не | not +что | what/that +он | he +на | on/onto +я | i +с | from +со | alternative form +как | how +а | milder form of `no' (but) +то | conjunction and form of `that' +все | all +она | she +так | so, thus +его | him +но | but +да | yes/and +ты | thou +к | towards, by +у | around, chez +же | intensifier particle +вы | you +за | beyond, behind +бы | conditional/subj. particle +по | up to, along +только | only +ее | her +мне | to me +было | it was +вот | here is/are, particle +от | away from +меня | me +еще | still, yet, more +нет | no, there isnt/arent +о | about +из | out of +ему | to him +теперь | now +когда | when +даже | even +ну | so, well +вдруг | suddenly +ли | interrogative particle +если | if +уже | already, but homonym of `narrower' +или | or +ни | neither +быть | to be +был | he was +него | prepositional form of его +до | up to +вас | you accusative +нибудь | indef. suffix preceded by hyphen +опять | again +уж | already, but homonym of `adder' +вам | to you +сказал | he said +ведь | particle `after all' +там | there +потом | then +себя | oneself +ничего | nothing +ей | to her +может | usually with `быть' as `maybe' +они | they +тут | here +где | where +есть | there is/are +надо | got to, must +ней | prepositional form of ей +для | for +мы | we +тебя | thee +их | them, their +чем | than +была | she was +сам | self +чтоб | in order to +без | without +будто | as if +человек | man, person, one +чего | genitive form of `what' +раз | once +тоже | also +себе | to oneself +под | beneath +жизнь | life +будет | will be +ж | short form of intensifer particle `же' +тогда | then +кто | who +этот | this +говорил | was saying +того | genitive form of `that' +потому | for that reason +этого | genitive form of `this' +какой | which +совсем | altogether +ним | prepositional form of `его', `они' +здесь | here +этом | prepositional form of `этот' +один | one +почти | almost +мой | my +тем | instrumental/dative plural of `тот', `то' +чтобы | full form of `in order that' +нее | her (acc.) +кажется | it seems +сейчас | now +были | they were +куда | where to +зачем | why +сказать | to say +всех | all (acc., gen. preposn. plural) +никогда | never +сегодня | today +можно | possible, one can +при | by +наконец | finally +два | two +об | alternative form of `о', about +другой | another +хоть | even +после | after +над | above +больше | more +тот | that one (masc.) +через | across, in +эти | these +нас | us +про | about +всего | in all, only, of all +них | prepositional form of `они' (they) +какая | which, feminine +много | lots +разве | interrogative particle +сказала | she said +три | three +эту | this, acc. fem. sing. +моя | my, feminine +впрочем | moreover, besides +хорошо | good +свою | ones own, acc. fem. sing. +этой | oblique form of `эта', fem. `this' +перед | in front of +иногда | sometimes +лучше | better +чуть | a little +том | preposn. form of `that one' +нельзя | one must not +такой | such a one +им | to them +более | more +всегда | always +конечно | of course +всю | acc. fem. sing of `all' +между | between + + + | b: some paradigms + | + | personal pronouns + | + | я меня мне мной [мною] + | ты тебя тебе тобой [тобою] + | он его ему им [него, нему, ним] + | она ее эи ею [нее, нэи, нею] + | оно его ему им [него, нему, ним] + | + | мы нас нам нами + | вы вас вам вами + | они их им ими [них, ним, ними] + | + | себя себе собой [собою] + | + | demonstrative pronouns: этот (this), тот (that) + | + | этот эта это эти + | этого эты это эти + | этого этой этого этих + | этому этой этому этим + | этим этой этим [этою] этими + | этом этой этом этих + | + | тот та то те + | того ту то те + | того той того тех + | тому той тому тем + | тем той тем [тою] теми + | том той том тех + | + | determinative pronouns + | + | (a) весь (all) + | + | весь вся все все + | всего всю все все + | всего всей всего всех + | всему всей всему всем + | всем всей всем [всею] всеми + | всем всей всем всех + | + | (b) сам (himself etc) + | + | сам сама само сами + | самого саму само самих + | самого самой самого самих + | самому самой самому самим + | самим самой самим [самою] самими + | самом самой самом самих + | + | stems of verbs `to be', `to have', `to do' and modal + | + | быть бы буд быв есть суть + | име + | дел + | мог мож мочь + | уме + | хоч хот + | долж + | можн + | нужн + | нельзя + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt new file mode 100644 index 0000000..22bddfd --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt @@ -0,0 +1,131 @@ + | From svn.tartarus.org/snowball/trunk/website/algorithms/swedish/stop.txt + | This file is distributed under the BSD License. + | See http://snowball.tartarus.org/license.php + | Also see http://www.opensource.org/licenses/bsd-license.html + | - Encoding was converted to UTF-8. + | - This notice was added. + + | A Swedish stop word list. Comments begin with vertical bar. Each stop + | word is at the start of a line. + + | This is a ranked list (commonest to rarest) of stopwords derived from + | a large text sample. + + | Swedish stop words occasionally exhibit homonym clashes. For example + | så = so, but also seed. These are indicated clearly below. + +och | and +det | it, this/that +att | to (with infinitive) +i | in, at +en | a +jag | I +hon | she +som | who, that +han | he +på | on +den | it, this/that +med | with +var | where, each +sig | him(self) etc +för | for +så | so (also: seed) +till | to +är | is +men | but +ett | a +om | if; around, about +hade | had +de | they, these/those +av | of +icke | not, no +mig | me +du | you +henne | her +då | then, when +sin | his +nu | now +har | have +inte | inte någon = no one +hans | his +honom | him +skulle | 'sake' +hennes | her +där | there +min | my +man | one (pronoun) +ej | nor +vid | at, by, on (also: vast) +kunde | could +något | some etc +från | from, off +ut | out +när | when +efter | after, behind +upp | up +vi | we +dem | them +vara | be +vad | what +över | over +än | than +dig | you +kan | can +sina | his +här | here +ha | have +mot | towards +alla | all +under | under (also: wonder) +någon | some etc +eller | or (else) +allt | all +mycket | much +sedan | since +ju | why +denna | this/that +själv | myself, yourself etc +detta | this/that +åt | to +utan | without +varit | was +hur | how +ingen | no +mitt | my +ni | you +bli | to be, become +blev | from bli +oss | us +din | thy +dessa | these/those +några | some etc +deras | their +blir | from bli +mina | my +samma | (the) same +vilken | who, that +er | you, your +sådan | such a +vår | our +blivit | from bli +dess | its +inom | within +mellan | between +sådant | such a +varför | why +varje | each +vilka | who, that +ditt | thy +vem | who +vilket | who, that +sitta | his +sådana | such a +vart | each +dina | thy +vars | whose +vårt | our +våra | our +ert | your +era | your +vilkas | whose + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_th.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_th.txt new file mode 100644 index 0000000..07f0fab --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_th.txt @@ -0,0 +1,119 @@ +# Thai stopwords from: +# "Opinion Detection in Thai Political News Columns +# Based on Subjectivity Analysis" +# Khampol Sukhum, Supot Nitsuwat, and Choochart Haruechaiyasak +ไว้ +ไม่ +ไป +ได้ +ให้ +ใน +โดย +แห่ง +แล้ว +และ +แรก +แบบ +แต่ +เอง +เห็น +เลย +เริ่ม +เรา +เมื่อ +เพื่อ +เพราะ +เป็นการ +เป็น +เปิดเผย +เปิด +เนื่องจาก +เดียวกัน +เดียว +เช่น +เฉพาะ +เคย +เข้า +เขา +อีก +อาจ +อะไร +ออก +อย่าง +อยู่ +อยาก +หาก +หลาย +หลังจาก +หลัง +หรือ +หนึ่ง +ส่วน +ส่ง +สุด +สําหรับ +ว่า +วัน +ลง +ร่วม +ราย +รับ +ระหว่าง +รวม +ยัง +มี +มาก +มา +พร้อม +พบ +ผ่าน +ผล +บาง +น่า +นี้ +นํา +นั้น +นัก +นอกจาก +ทุก +ที่สุด +ที่ +ทําให้ +ทํา +ทาง +ทั้งนี้ +ทั้ง +ถ้า +ถูก +ถึง +ต้อง +ต่างๆ +ต่าง +ต่อ +ตาม +ตั้งแต่ +ตั้ง +ด้าน +ด้วย +ดัง +ซึ่ง +ช่วง +จึง +จาก +จัด +จะ +คือ +ความ +ครั้ง +คง +ขึ้น +ของ +ขอ +ขณะ +ก่อน +ก็ +การ +กับ +กัน +กว่า +กล่าว diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_tr.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_tr.txt new file mode 100644 index 0000000..84d9408 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_tr.txt @@ -0,0 +1,212 @@ +# Turkish stopwords from LUCENE-559 +# merged with the list from "Information Retrieval on Turkish Texts" +# (http://www.users.muohio.edu/canf/papers/JASIST2008offPrint.pdf) +acaba +altmış +altı +ama +ancak +arada +aslında +ayrıca +bana +bazı +belki +ben +benden +beni +benim +beri +beş +bile +bin +bir +birçok +biri +birkaç +birkez +birşey +birşeyi +biz +bize +bizden +bizi +bizim +böyle +böylece +bu +buna +bunda +bundan +bunlar +bunları +bunların +bunu +bunun +burada +çok +çünkü +da +daha +dahi +de +defa +değil +diğer +diye +doksan +dokuz +dolayı +dolayısıyla +dört +edecek +eden +ederek +edilecek +ediliyor +edilmesi +ediyor +eğer +elli +en +etmesi +etti +ettiği +ettiğini +gibi +göre +halen +hangi +hatta +hem +henüz +hep +hepsi +her +herhangi +herkesin +hiç +hiçbir +için +iki +ile +ilgili +ise +işte +itibaren +itibariyle +kadar +karşın +katrilyon +kendi +kendilerine +kendini +kendisi +kendisine +kendisini +kez +ki +kim +kimden +kime +kimi +kimse +kırk +milyar +milyon +mu +mü +mı +nasıl +ne +neden +nedenle +nerde +nerede +nereye +niye +niçin +o +olan +olarak +oldu +olduğu +olduğunu +olduklarını +olmadı +olmadığı +olmak +olması +olmayan +olmaz +olsa +olsun +olup +olur +olursa +oluyor +on +ona +ondan +onlar +onlardan +onları +onların +onu +onun +otuz +oysa +öyle +pek +rağmen +sadece +sanki +sekiz +seksen +sen +senden +seni +senin +siz +sizden +sizi +sizin +şey +şeyden +şeyi +şeyler +şöyle +şu +şuna +şunda +şundan +şunları +şunu +tarafından +trilyon +tüm +üç +üzere +var +vardı +ve +veya +ya +yani +yapacak +yapılan +yapılması +yapıyor +yapmak +yaptı +yaptığı +yaptığını +yaptıkları +yedi +yerine +yetmiş +yine +yirmi +yoksa +yüz +zaten diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/userdict_ja.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/userdict_ja.txt new file mode 100644 index 0000000..6f0368e --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/userdict_ja.txt @@ -0,0 +1,29 @@ +# +# This is a sample user dictionary for Kuromoji (JapaneseTokenizer) +# +# Add entries to this file in order to override the statistical model in terms +# of segmentation, readings and part-of-speech tags. Notice that entries do +# not have weights since they are always used when found. This is by-design +# in order to maximize ease-of-use. +# +# Entries are defined using the following CSV format: +# , ... , ... , +# +# Notice that a single half-width space separates tokens and readings, and +# that the number tokens and readings must match exactly. +# +# Also notice that multiple entries with the same is undefined. +# +# Whitespace only lines are ignored. Comments are not allowed on entry lines. +# + +# Custom segmentation for kanji compounds +日本経済新聞,日本 経済 新聞,ニホン ケイザイ シンブン,カスタム名詞 +関西国際空港,関西 国際 空港,カンサイ コクサイ クウコウ,カスタム名詞 + +# Custom segmentation for compound katakana +トートバッグ,トート バッグ,トート バッグ,かずカナ名詞 +ショルダーバッグ,ショルダー バッグ,ショルダー バッグ,かずカナ名詞 + +# Custom reading for former sumo wrestler +朝青龍,朝青龍,アサショウリュウ,カスタム人名 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/protwords.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/protwords.txt new file mode 100644 index 0000000..1dfc0ab --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/protwords.txt @@ -0,0 +1,21 @@ +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#----------------------------------------------------------------------- +# Use a protected word file to protect against the stemmer reducing two +# unrelated words to the same base word. + +# Some non-words that normally won't be encountered, +# just to test that they won't be stemmed. +dontstems +zwhacky + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/schema.xml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/schema.xml new file mode 100644 index 0000000..65991e1 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/schema.xml @@ -0,0 +1,947 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/solrconfig.xml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/solrconfig.xml new file mode 100644 index 0000000..dc1cfc5 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/solrconfig.xml @@ -0,0 +1,1828 @@ + + + + + + + + + LUCENE_43 + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${solr.data.dir:} + + + + + + + + + + + + + + + + ${solr.maxIndexingThreads:8} + + + + + + 128 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${solr.ulog.dir:} + + + + + ${solr.autoCommit.maxTime:60000} + false + + + + + + ${solr.autoSoftCommit.maxTime:1000} + + + + + + + + + + + + + + + + + + + + 1024 + + + + + + + + + + + + + + + + + + + + + + true + + + + + + 20 + + + 200 + + + + + + + + + + + + static firstSearcher warming in solrconfig.xml + + + + + + false + + + 4 + + + + + + + + + + + + + + + + + + + + + + + explicit + 10 + text + + + + + + + + + + + + + + explicit + json + true + text + + + + + + + + true + json + true + + + + + + + + explicit + + + velocity + browse + layout + Solritas + + + edismax + + text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4 + title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0 + + text + 100% + *:* + 10 + *,score + + + text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4 + title^10.0 description^5.0 keywords^5.0 author^2.0 resourcename^1.0 + + text,features,name,sku,id,manu,cat,title,description,keywords,author,resourcename + 3 + + + on + cat + manu_exact + content_type + author_s + ipod + GB + 1 + cat,inStock + after + price + 0 + 600 + 50 + popularity + 0 + 10 + 3 + manufacturedate_dt + NOW/YEAR-10YEARS + NOW + +1YEAR + before + after + + + on + content features title name + html + <b> + </b> + 0 + title + 0 + name + 3 + 200 + content + 750 + + + on + false + 5 + 2 + 5 + true + true + 5 + 3 + + + + + spellcheck + + + + + + + + + + + + + + application/json + + + + + application/csv + + + + + + + true + ignored_ + + + text + + + id + user_friends_count + user_location + user_description + user_statuses_count + user_followers_count + user_name + user_screen_name + created_at + text + retweet_count + retweeted + in_reply_to_user_id + source + in_reply_to_status_id + media_url_https + expanded_url + + + file_download_url + file_upload_url + file_scheme + file_host + file_port + file_path + file_name + file_length + file_last_modified + file_owner + file_group + file_permissions_user + file_permissions_group + file_permissions_other + file_permissions_stickybit + + + content_type + + + + + + + + + + + + + + + + + + + + + + + + + solrpingquery + + + all + + + + + + + + + explicit + true + + + + + + + + + + + + + + + + textSpell + + + + + + default + name + solr.DirectSolrSpellChecker + + internal + + 0.5 + + 2 + + 1 + + 5 + + 4 + + 0.01 + + + + + + wordbreak + solr.WordBreakSolrSpellChecker + name + true + true + 10 + + + + + + + + + + + + + + + + text + + default + wordbreak + on + true + 10 + 5 + 5 + true + true + 10 + 5 + + + spellcheck + + + + + + + + + + text + true + + + tvComponent + + + + + + + + + default + + + org.carrot2.clustering.lingo.LingoClusteringAlgorithm + + + 20 + + + clustering/carrot2 + + + ENGLISH + + + stc + org.carrot2.clustering.stc.STCClusteringAlgorithm + + + + + + + true + default + true + + name + id + + features + + true + + + + false + + edismax + + text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4 + + *:* + 10 + *,score + + + clustering + + + + + + + + + + true + + + terms + + + + + + + + string + elevate.xml + + + + + + explicit + text + + + elevator + + + + + + + + + + + 100 + + + + + + + + 70 + + 0.5 + + [-\w ,/\n\"']{20,200} + + + + + + + ]]> + ]]> + + + + + + + + + + + + + + + + + + + + + + + + ,, + ,, + ,, + ,, + ,]]> + ]]> + + + + + + 10 + .,!? + + + + + + + WORD + + + en + US + + + + + + + + + + + + + + + + + + + + + + text/plain; charset=UTF-8 + + + + + + + + + 5 + + + + + + + + + + + + + + + + + + *:* + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/stopwords.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/stopwords.txt new file mode 100644 index 0000000..ae1e83e --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/stopwords.txt @@ -0,0 +1,14 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/synonyms.txt b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/synonyms.txt new file mode 100644 index 0000000..7f72128 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/synonyms.txt @@ -0,0 +1,29 @@ +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#----------------------------------------------------------------------- +#some test synonym mappings unlikely to appear in real input text +aaafoo => aaabar +bbbfoo => bbbfoo bbbbar +cccfoo => cccbar cccbaz +fooaaa,baraaa,bazaaa + +# Some synonym groups specific to this example +GB,gib,gigabyte,gigabytes +MB,mib,megabyte,megabytes +Television, Televisions, TV, TVs +#notice we use "gib" instead of "GiB" so any WordDelimiterFilter coming +#after us won't split it into two words. + +# Synonym mappings can be used for spelling correction too +pixima => pixma + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/NullHeader.docx b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/NullHeader.docx new file mode 100644 index 0000000000000000000000000000000000000000..cc62b8d6bebaf06dc46dbce5d56089778d6f528f GIT binary patch literal 4355 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/boilerplate.html b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/boilerplate.html new file mode 100644 index 0000000..854ebcd --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/boilerplate.html @@ -0,0 +1,41 @@ + + + + + + Title + + + + + + + +
+ + + + + +
boilerplatetext
+
+ +

This is the real meat of the page, +and represents the text we want. +It has lots of juicy content. + +We assume that it won't get filtered out. +And that all of the lines will be in the +output. +

+ +

+Here's another paragraph of text. +This is the end of the text. +

+ +

footer

+ + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.csv b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.csv new file mode 100644 index 0000000..8f1f9e1 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.csv @@ -0,0 +1,6 @@ +Age,Color,Extras,Type,Used +2,blue,GPS,"Gas, with electric","" +10,green,"Labeled ""Vintage, 1913""",,yes +100,red,"Labeled ""Vintage 1913""",yes +5,orange,none,"This is a +multi, line text",no \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.csv.gz b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.csv.gz new file mode 100644 index 0000000000000000000000000000000000000000..ee2a951eddc077ee2c382113b9b9c62141fabdbb GIT binary patch literal 167 zcmV;Y09gMYiwFpht))=_17l%wb1q|Zb^vY6u?oUK5CqUZU$JaGMWR?(iinMcV6?v^ zOLB1D$=wE%zjtk{gz4tZ97e%0g_LnxG`oU!eF^SGhH8T@%!2dv20mLuZ?6+ckY2Oz z8O&8vW6UBEd~uyM12I2*RA;Z$?3*n!1FIC1HL?tU;Lm;84k^26>zJZ|+sPNQxav6v V^`PLRkjkQL;sY8H&w{)F001z!Ok)55 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.ssv b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.ssv new file mode 100644 index 0000000..54dfd4f --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.ssv @@ -0,0 +1,6 @@ +Age Color Extras Type Used +2 blue GPS "Gas, with electric" "" +10 green "Labeled ""Vintage, 1913""" yes +100 red "Labeled ""Vintage 1913""" yes +5 orange none "This is a +multi, line text" no \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.tar.gz b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/cars.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..24128a30ecccf03e5f0df9251337749066ed1d49 GIT binary patch literal 10240 zcmeIy&uhaV6bJB}`&WqPN6}~_Id9pmu+v~ir$R#4WN2Ep|9&PgQVL}|w5*5kBjB$f zzK=YejY+OuIu^GJk)zVOm|9brxs|1u+i6ZpS>&-6)uu9K{!c2Us)C8z9ckJ5kVYFB zE7~EsHtd##v!3<)u0NYQ9Zrel_(|$?>7M(q!A9EJU7+pY!#h2O)O!M5Ir?&BZyl^%)TXJ`(fxgshsp$h}AtOiL+f4aJl}=|E~YiEcLI|T>sjj{x4qI z6&L +Delivered-To: apmail-hadoop-core-user-archive@www.apache.org +Received: (qmail 19921 invoked from network); 1 Jun 2009 04:28:28 -0000 +Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) + by minotaur.apache.org with SMTP; 1 Jun 2009 04:28:28 -0000 +Received: (qmail 84995 invoked by uid 500); 1 Jun 2009 04:28:38 -0000 +Delivered-To: apmail-hadoop-core-user-archive@hadoop.apache.org +Received: (qmail 84895 invoked by uid 500); 1 Jun 2009 04:28:38 -0000 +Mailing-List: contact core-user-help@hadoop.apache.org; run by ezmlm +Precedence: bulk +List-Help: +List-Unsubscribe: +List-Post: +List-Id: +Reply-To: core-user@hadoop.apache.org +Delivered-To: mailing list core-user@hadoop.apache.org +Received: (qmail 84885 invoked by uid 99); 1 Jun 2009 04:28:38 -0000 +Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) + by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jun 2009 04:28:38 +0000 +X-ASF-Spam-Status: No, hits=1.2 required=10.0 + tests=SPF_NEUTRAL +X-Spam-Check-By: apache.org +Received-SPF: neutral (athena.apache.org: local policy) +Received: from [69.147.107.21] (HELO mrout2-b.corp.re1.yahoo.com) (69.147.107.21) + by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jun 2009 04:28:26 +0000 +Received: from SNV-EXPF01.ds.corp.yahoo.com (snv-expf01.ds.corp.yahoo.com [207.126.227.250]) + by mrout2-b.corp.re1.yahoo.com (8.13.8/8.13.8/y.out) with ESMTP id n514QYA6099963 + for ; Sun, 31 May 2009 21:26:35 -0700 (PDT) +DomainKey-Signature: a=rsa-sha1; s=serpent; d=yahoo-inc.com; c=nofws; q=dns; + h=received:user-agent:date:subject:from:to:message-id: + thread-topic:thread-index:in-reply-to:mime-version:content-type: + content-transfer-encoding:x-originalarrivaltime; + b=YVtSNdgjeeSBS1yY3XDolul49i+HrgNG7QszMo9LzGnrwejjgsl5+iUM6EiQgEpV +Received: from SNV-EXVS08.ds.corp.yahoo.com ([207.126.227.9]) by SNV-EXPF01.ds.corp.yahoo.com with Microsoft SMTPSVC(6.0.3790.3959); + Sun, 31 May 2009 21:26:34 -0700 +Received: from 10.66.92.213 ([10.66.92.213]) by SNV-EXVS08.ds.corp.yahoo.com ([207.126.227.58]) with Microsoft Exchange Server HTTP-DAV ; + Mon, 1 Jun 2009 04:26:33 +0000 +User-Agent: Microsoft-Entourage/12.17.0.090302 +Date: Mon, 01 Jun 2009 09:56:31 +0530 +Subject: Re: question about when shuffle/sort start working +From: Jothi Padmanabhan +To: +Message-ID: +Thread-Topic: question about when shuffle/sort start working +Thread-Index: AcnicSNoBw19cMU8UEaXwAdZ1YYhuw== +In-Reply-To: <440622.41041.qm@web111005.mail.gq1.yahoo.com> +Mime-version: 1.0 +Content-type: text/plain; + charset="US-ASCII" +Content-transfer-encoding: 7bit +X-OriginalArrivalTime: 01 Jun 2009 04:26:34.0501 (UTC) FILETIME=[257EAB50:01C9E271] +X-Virus-Checked: Checked by ClamAV on apache.org + +When a Mapper completes, MapCompletionEvents are generated. Reducers try to +fetch map outputs for a given map only on the receipt of such events. + +Jothi + + +On 5/30/09 10:00 AM, "Jianmin Woo" wrote: + +> Hi, +> I am being confused by the protocol between mapper and reducer. When mapper +> emitting the (key,value) pair done, is there any signal the mapper send out to +> hadoop framework in protocol to indicate that map is done and the shuffle/sort +> can begin for reducer? If there is no this signal in protocol, when the +> framework begin the shuffle/sort? +> +> Thanks, +> Jianmin +> +> +> +> + + +From core-user-return-14701-apmail-hadoop-core-user-archive=hadoop.apache.org@hadoop.apache.org Mon Jun 01 05:31:14 2009 +Return-Path: +Delivered-To: apmail-hadoop-core-user-archive@www.apache.org +Received: (qmail 38243 invoked from network); 1 Jun 2009 05:31:14 -0000 +Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) + by minotaur.apache.org with SMTP; 1 Jun 2009 05:31:14 -0000 +Received: (qmail 15621 invoked by uid 500); 1 Jun 2009 05:31:24 -0000 +Delivered-To: apmail-hadoop-core-user-archive@hadoop.apache.org +Received: (qmail 15557 invoked by uid 500); 1 Jun 2009 05:31:24 -0000 +Mailing-List: contact core-user-help@hadoop.apache.org; run by ezmlm +Precedence: bulk +List-Help: +List-Unsubscribe: +List-Post: +List-Id: +Reply-To: core-user@hadoop.apache.org +Delivered-To: mailing list core-user@hadoop.apache.org +Received: (qmail 15547 invoked by uid 99); 1 Jun 2009 05:31:24 -0000 +Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) + by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jun 2009 05:31:24 +0000 +X-ASF-Spam-Status: No, hits=2.2 required=10.0 + tests=HTML_MESSAGE,SPF_PASS +X-Spam-Check-By: apache.org +Received-SPF: pass (nike.apache.org: local policy) +Received: from [68.142.237.94] (HELO n9.bullet.re3.yahoo.com) (68.142.237.94) + by apache.org (qpsmtpd/0.29) with SMTP; Mon, 01 Jun 2009 05:31:11 +0000 +Received: from [68.142.237.88] by n9.bullet.re3.yahoo.com with NNFMP; 01 Jun 2009 05:30:50 -0000 +Received: from [67.195.9.82] by t4.bullet.re3.yahoo.com with NNFMP; 01 Jun 2009 05:30:49 -0000 +Received: from [67.195.9.99] by t2.bullet.mail.gq1.yahoo.com with NNFMP; 01 Jun 2009 05:30:49 -0000 +Received: from [127.0.0.1] by omp103.mail.gq1.yahoo.com with NNFMP; 01 Jun 2009 05:28:01 -0000 +X-Yahoo-Newman-Property: ymail-3 +X-Yahoo-Newman-Id: 796121.97519.bm@omp103.mail.gq1.yahoo.com +Received: (qmail 35264 invoked by uid 60001); 1 Jun 2009 05:30:49 -0000 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1243834249; bh=R8qzdi/IbLyO8UwpnaujDpT9E+6bJ7nkmZN2803EmRk=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=vq4c6RIDbkuLPYd8mirusIXf6DqTb/IeT55In7W00Y5Sxx1ZiXBb78yE9+TDfXJ0elsEZvqv4ocyvolGE0eGtyYeJA0mZikpRNu6pidxPNpCplOcLHBRz7YQ7iERwv3TagRlWy2Xd3oD9ZeV0A05P7WUOiNNX1PUUJD1IVdrEZo= +DomainKey-Signature:a=rsa-sha1; q=dns; c=nofws; + s=s1024; d=yahoo.com; + h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type; + b=6HXZV98ON5vBwmE/xS8stVD0D2F4dkMY7a0suX5KVTb736JdR8G59mqBq/dWcpbFTLiCLtxi18LMb/dU1RKRGOEdn3l3j/jKXhBrhIgfg3qtNskPedXDKBvn7JGXiSkqpA/tUtPjvc0Uuk8/LaA01SQTz40Engg7nD8/EJdIAhA=; +Message-ID: <592088.35091.qm@web111010.mail.gq1.yahoo.com> +X-YMail-OSG: KzhhrJYVM1m.MCS6vRpRP2ZZO2PrfnbngosELDCIa91ZqvhJph4RdmzfUW0jw9W04RCSch1K730bPohwNpNBIk2QR_zt4_mfbhfq7YEPkSoz9LSXG90P9vIo5Fc8qyZN0U6vA9gtdyGQTpN5ahvillUH9nAF0TMWv2SvZJLjPlQ0Z0p8oK8ltBwGTgLrM8Jtdn9D29yoRyi3_EpVOfdD9OP.EK50Vr1XwSUYMbnpZ0WGHMwd.Yig7A6Elwadm3YVbfOdx2mfrG.jQsUAxQjRBNvbrOM57.FaE11kHTe9aoBWSeihNg-- +Received: from [216.145.54.7] by web111010.mail.gq1.yahoo.com via HTTP; Sun, 31 May 2009 22:30:49 PDT +X-Mailer: YahooMailRC/1277.43 YahooMailWebService/0.7.289.10 +References: +Date: Sun, 31 May 2009 22:30:49 -0700 (PDT) +From: Jianmin Woo +Subject: Re: question about when shuffle/sort start working +To: core-user@hadoop.apache.org +In-Reply-To: +MIME-Version: 1.0 +Content-Type: multipart/alternative; boundary="0-1193839393-1243834249=:35091" +X-Virus-Checked: Checked by ClamAV on apache.org + +--0-1193839393-1243834249=:35091 +Content-Type: text/plain; charset=us-ascii + +Thanks a lot for your explanation, Jothi. + +So is this event generated by hadoop framework? Is there any API in mapper to fire this event? Actually, I am thinking to implement a mapper that will emit some pairs, then fire this event to let the reducer works, the same mapper task then emit some other pairs and repeat. Do you think is this logic feasible by current API? + +Thanks, +Jianmin + + + + + +________________________________ +From: Jothi Padmanabhan +To: core-user@hadoop.apache.org +Sent: Monday, June 1, 2009 12:26:31 PM +Subject: Re: question about when shuffle/sort start working + +When a Mapper completes, MapCompletionEvents are generated. Reducers try to +fetch map outputs for a given map only on the receipt of such events. + +Jothi + + +On 5/30/09 10:00 AM, "Jianmin Woo" wrote: + +> Hi, +> I am being confused by the protocol between mapper and reducer. When mapper +> emitting the (key,value) pair done, is there any signal the mapper send out to +> hadoop framework in protocol to indicate that map is done and the shuffle/sort +> can begin for reducer? If there is no this signal in protocol, when the +> framework begin the shuffle/sort? +> +> Thanks, +> Jianmin +> +> +> +> + + + +--0-1193839393-1243834249=:35091-- + + +From core-user-return-14702-apmail-hadoop-core-user-archive=hadoop.apache.org@hadoop.apache.org Mon Jun 01 06:04:30 2009 +Return-Path: +Delivered-To: apmail-hadoop-core-user-archive@www.apache.org +Received: (qmail 53387 invoked from network); 1 Jun 2009 06:04:29 -0000 +Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) + by minotaur.apache.org with SMTP; 1 Jun 2009 06:04:29 -0000 +Received: (qmail 39066 invoked by uid 500); 1 Jun 2009 06:04:39 -0000 +Delivered-To: apmail-hadoop-core-user-archive@hadoop.apache.org +Received: (qmail 38970 invoked by uid 500); 1 Jun 2009 06:04:39 -0000 +Mailing-List: contact core-user-help@hadoop.apache.org; run by ezmlm +Precedence: bulk +List-Help: +List-Unsubscribe: +List-Post: +List-Id: +Reply-To: core-user@hadoop.apache.org +Delivered-To: mailing list core-user@hadoop.apache.org +Received: (qmail 38955 invoked by uid 99); 1 Jun 2009 06:04:39 -0000 +Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) + by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jun 2009 06:04:39 +0000 +X-ASF-Spam-Status: No, hits=1.2 required=10.0 + tests=SPF_NEUTRAL +X-Spam-Check-By: apache.org +Received-SPF: neutral (athena.apache.org: local policy) +Received: from [216.145.54.172] (HELO mrout2.yahoo.com) (216.145.54.172) + by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jun 2009 06:04:28 +0000 +Received: from SNV-EXBH01.ds.corp.yahoo.com (snv-exbh01.ds.corp.yahoo.com [207.126.227.249]) + by mrout2.yahoo.com (8.13.6/8.13.6/y.out) with ESMTP id n5163FGq038852 + for ; Sun, 31 May 2009 23:03:15 -0700 (PDT) +DomainKey-Signature: a=rsa-sha1; s=serpent; d=yahoo-inc.com; c=nofws; q=dns; + h=received:user-agent:date:subject:from:to:message-id: + thread-topic:thread-index:in-reply-to:mime-version:content-type: + content-transfer-encoding:x-originalarrivaltime; + b=rChE4SCnwtWaZpjhovkiXDKfDiVNdRRvsadSGG9S9bgvOexn/9/5JjEQx1pOR7Nb +Received: from SNV-EXVS08.ds.corp.yahoo.com ([207.126.227.9]) by SNV-EXBH01.ds.corp.yahoo.com with Microsoft SMTPSVC(6.0.3790.3959); + Sun, 31 May 2009 23:03:15 -0700 +Received: from 10.66.92.213 ([10.66.92.213]) by SNV-EXVS08.ds.corp.yahoo.com ([207.126.227.58]) with Microsoft Exchange Server HTTP-DAV ; + Mon, 1 Jun 2009 06:03:15 +0000 +User-Agent: Microsoft-Entourage/12.17.0.090302 +Date: Mon, 01 Jun 2009 11:33:13 +0530 +Subject: Re: question about when shuffle/sort start working +From: Jothi Padmanabhan +To: +Message-ID: +Thread-Topic: question about when shuffle/sort start working +Thread-Index: AcnifqWrLG6N7GAk7kqy9QalVWfegQ== +In-Reply-To: <592088.35091.qm@web111010.mail.gq1.yahoo.com> +Mime-version: 1.0 +Content-type: text/plain; + charset="US-ASCII" +Content-transfer-encoding: 7bit +X-OriginalArrivalTime: 01 Jun 2009 06:03:15.0462 (UTC) FILETIME=[A7231260:01C9E27E] +X-Virus-Checked: Checked by ClamAV on apache.org + + +No you cannot raise this event yourself, this event is generated internally +by the framework. + +I am guessing that what you probably want is to have a chain of MapReduce +Jobs where the output of one is automatically fed as input to another. You +can look at these classes: JobControl and ChainMapper/ChainReducer. + +Jothi + +On 6/1/09 11:00 AM, "Jianmin Woo" wrote: + +> Thanks a lot for your explanation, Jothi. +> +> So is this event generated by hadoop framework? Is there any API in mapper to +> fire this event? Actually, I am thinking to implement a mapper that will emit +> some pairs, then fire this event to let the reducer works, the +> same mapper task then emit some other pairs and repeat. Do you +> think is this logic feasible by current API? +> +> Thanks, +> Jianmin +> +> +> +> +> +> ________________________________ +> From: Jothi Padmanabhan +> To: core-user@hadoop.apache.org +> Sent: Monday, June 1, 2009 12:26:31 PM +> Subject: Re: question about when shuffle/sort start working +> +> When a Mapper completes, MapCompletionEvents are generated. Reducers try to +> fetch map outputs for a given map only on the receipt of such events. +> +> Jothi +> +> +> On 5/30/09 10:00 AM, "Jianmin Woo" wrote: +> +>> Hi, +>> I am being confused by the protocol between mapper and reducer. When mapper +>> emitting the (key,value) pair done, is there any signal the mapper send out +>> to +>> hadoop framework in protocol to indicate that map is done and the +>> shuffle/sort +>> can begin for reducer? If there is no this signal in protocol, when the +>> framework begin the shuffle/sort? +>> +>> Thanks, +>> Jianmin +>> +>> +>> +>> +> +> +> + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-sessions.log b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-sessions.log new file mode 100644 index 0000000..633a15c --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-sessions.log @@ -0,0 +1,9 @@ +Started GET /foo + Foo Started GET as HTML +Completed 401 Unauthorized in 0ms + + +Started GET /bar + Bar as HTML +Completed 200 OK in 339ms +Started GET /baz diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace-expected-long-event.log b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace-expected-long-event.log new file mode 100644 index 0000000..419f799 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace-expected-long-event.log @@ -0,0 +1,25 @@ +Grave: Timer task com.base2services.jenkins.SqsQueueHandler@32eea79d failed +com.amazonaws.AmazonClientException: Unable to calculate a request signature: Unable to calculate a request signature: Empty key + at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:71) + at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:55) + at com.amazonaws.auth.QueryStringSigner.sign(QueryStringSigner.java:83) + at com.amazonaws.auth.QueryStringSigner.sign(QueryStringSigner.java:46) + at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:238) + at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170) + at com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:776) + at com.amazonaws.services.sqs.AmazonSQSClient.listQueues(AmazonSQSClient.java:564) + at com.amazonaws.services.sqs.AmazonSQSClient.listQueues(AmazonSQSClient.java:732) + at com.base2services.jenkins.SqsProfile.createQueue(SqsProfile.java:72) + at com.base2services.jenkins.SqsProfile.getQueueUrl(SqsProfile.java:62) + at com.base2services.jenkins.SqsQueueHandler.doRun(SqsQueueHandler.java:37) + at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:54) + at java.util.TimerThread.mainLoop(Timer.java:555) + at java.util.TimerThread.run(Timer.java:505) +Caused by: com.amazonaws.AmazonClientException: Unable to calculate a request signature: Empty key + at com.amazonaws.auth.AbstractAWSSigner.sign(AbstractAWSSigner.java:90) + at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:68) + ... 14 more +Caused by: java.lang.IllegalArgumentException: Empty key + at javax.crypto.spec.SecretKeySpec.(SecretKeySpec.java:96) + at com.amazonaws.auth.AbstractAWSSigner.sign(AbstractAWSSigner.java:87) + ... 15 more \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace.log b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace.log new file mode 100644 index 0000000..b860012 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/multiline-stacktrace.log @@ -0,0 +1,30 @@ +juil. 25, 2012 10:49:46 AM hudson.triggers.SafeTimerTask run +Grave: Timer task com.base2services.jenkins.SqsQueueHandler@32eea79d failed +com.amazonaws.AmazonClientException: Unable to calculate a request signature: Unable to calculate a request signature: Empty key + at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:71) + at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:55) + at com.amazonaws.auth.QueryStringSigner.sign(QueryStringSigner.java:83) + at com.amazonaws.auth.QueryStringSigner.sign(QueryStringSigner.java:46) + at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:238) + at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170) + at com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:776) + at com.amazonaws.services.sqs.AmazonSQSClient.listQueues(AmazonSQSClient.java:564) + at com.amazonaws.services.sqs.AmazonSQSClient.listQueues(AmazonSQSClient.java:732) + at com.base2services.jenkins.SqsProfile.createQueue(SqsProfile.java:72) + at com.base2services.jenkins.SqsProfile.getQueueUrl(SqsProfile.java:62) + at com.base2services.jenkins.SqsQueueHandler.doRun(SqsQueueHandler.java:37) + at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:54) + at java.util.TimerThread.mainLoop(Timer.java:555) + at java.util.TimerThread.run(Timer.java:505) +Caused by: com.amazonaws.AmazonClientException: Unable to calculate a request signature: Empty key + at com.amazonaws.auth.AbstractAWSSigner.sign(AbstractAWSSigner.java:90) + at com.amazonaws.auth.AbstractAWSSigner.signAndBase64Encode(AbstractAWSSigner.java:68) + ... 14 more +Caused by: java.lang.IllegalArgumentException: Empty key + at javax.crypto.spec.SecretKeySpec.(SecretKeySpec.java:96) + at com.amazonaws.auth.AbstractAWSSigner.sign(AbstractAWSSigner.java:87) + ... 15 more + + +juil. 25, 2012 10:49:54 AM hudson.slaves.SlaveComputer tryReconnect +Infos: Attempting to reconnect CentosVagrant \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/non-length-delimited-20130430-234145-tweets.json.gz b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/non-length-delimited-20130430-234145-tweets.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e5c0f7ad2f9dec042683b060008583af518b816c GIT binary patch literal 955 zcmV;s14R5EiwFp2yQNV818#3_Eo^0OXLM*SWMyn=ZE196WGyl>+cv=K)F4hk77r=}P88 zks3)gYlHmvUg|4ytk~&Rv>g+GCUwPo&*8Z`chtc@j>gpTqLe_~Er26h0i93-^@=6B zQWz3Us8Gy6DL*i$S!Ka6kdF9GK_nFaH+|qblQWk%o(n%hPO&0|EjJ7ovM&rW|A!T1T1tJ3%=}$}b20ZA8Si^;FNupZ~!;w2-~eb#ym;%agkDvWsnTd!w7H%b=4nY$H5 zUW<9U_ln(2!_8D_Q*e3qSDEiAy&0Z#VZEL@l5m5o+?S#7;htuY(;KK&;oq}6WP~GI zLP?k2oX{n{lkm9Q5$l%`n#~9&V_>L|7Sx{9M0p}{5!Ov zC>j^$F&nz#iu{h=lL(vq3oGghIq)K1%IA5}uhHw(eECJaC_3#$%iq@Lv)5n7i=uY4 z{msUWsSP?Xrr=q|6n$%BI)?GN_S76P=1)~lg1Psn*({Eh&+w;tJ;wa0>xQrBPfxwo z)7H%`Ujw_MYm~X+l3e2+`RUCS`H`%-;wgVgpR%#&b8KvN83c=q*2bDDX8+a3PU7tV dw|IxH_Hz`T2f_WIp4ll^`vgHQE`M7M006qg)X4w< literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/rsstest.rss b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/rsstest.rss new file mode 100644 index 0000000..758f6a1 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/rsstest.rss @@ -0,0 +1,36 @@ + + + + + TestChannel + http://test.channel.com/ + Sample RSS File for Junit test + en-us + + + Home Page of Chris Mattmann + http://www-scf.usc.edu/~mattmann/ + Chris Mattmann's home page + + + Awesome Open Source Search Engine + http://www.nutch.org/ + Yup, that's what it is + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433 b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433 new file mode 100644 index 0000000..e633a1f --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433 @@ -0,0 +1,4 @@ +1000 +{"text":"sample tweet one","retweet_count":0,"in_reply_to_user_id":null,"retweeted":false,"truncated":false,"source":"href=\"http:\/\/sample.com\"","id_str":"1234567891","entities":{"user_mentions":[],"hashtags":[],"urls":[]},"in_reply_to_status_id":null,"place":null,"in_reply_to_status_id_str":null,"coordinates":null,"created_at":"Wed Sep 05 01:01:01 +0000 1985","in_reply_to_screen_name":null,"favorited":false,"in_reply_to_user_id_str":null,"user":{"default_profile_image":false,"friends_count":111,"profile_background_color":"3C0C29","location":"Palo Alto","is_translator":false,"profile_background_tile":true,"favourites_count":11,"verified":false,"profile_sidebar_fill_color":"efefef","follow_request_sent":null,"contributors_enabled":false,"description":"desc1","profile_sidebar_border_color":"eeeeee","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/1\/normal.jpg","id_str":"1111111","listed_count":1,"lang":"en","screen_name":"fake_user1","show_all_inline_media":false,"profile_use_background_image":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1111111\/normal.jpg","default_profile":false,"statuses_count":11111,"created_at":"Thu Apr 07 11:04:54 +0000 1985","profile_text_color":"333333","followers_count":111,"protected":false,"following":null,"notifications":null,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.gif","time_zone":null,"url":null,"name":"name1","geo_enabled":false,"profile_link_color":"009999","id":1111112,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.gif","utc_offset":null},"id":11111112,"contributors":null,"geo":null} +2000 +{"text":"sample tweet two","retweet_count":0,"in_reply_to_user_id":null,"retweeted":false,"truncated":false,"source":"href=\"http:\/\/sample.com\"","id_str":"2345678902","entities":{"user_mentions":[],"hashtags":[],"urls":[]},"in_reply_to_status_id":null,"place":null,"in_reply_to_status_id_str":null,"coordinates":null,"created_at":"Wed Sep 05 02:14:34 +0000 1985","in_reply_to_screen_name":null,"favorited":false,"in_reply_to_user_id_str":null,"user":{"default_profile_image":false,"friends_count":222,"profile_background_color":"3C0C29","location":"San Francisco","is_translator":false,"profile_background_tile":false,"favourites_count":22,"verified":false,"profile_sidebar_fill_color":"B2D948","follow_request_sent":null,"contributors_enabled":false,"description":"desc2","profile_sidebar_border_color":"8EC63D","profile_image_url_https":"https:\/\/si0.twimg.com\/profile_images\/22222222\/image_normal.jpg","id_str":"2222222","listed_count":0,"lang":"en","screen_name":"fake_user2","show_all_inline_media":false,"profile_use_background_image":true,"profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/2222222\/image_normal.jpg","default_profile":false,"statuses_count":222222,"created_at":"Thu Aug 04 11:33:28 +0000 1985","profile_text_color":"444444","followers_count":222,"protected":false,"following":null,"notifications":null,"profile_background_image_url":"http:\/\/a0.twimg.com\/profile_background_images\/222222\/222222.jpg","time_zone":"Central Time (US & Canada)","url":null,"name":"name2","geo_enabled":false,"profile_link_color":"9A0057","id":2222223,"profile_background_image_url_https":"https:\/\/si0.twimg.com\/profile_background_images\/2222222\/22222.jpg","utc_offset":-21600},"id":222223,"contributors":null,"geo":null} \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433-medium.avro b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433-medium.avro new file mode 100644 index 0000000000000000000000000000000000000000..900507c6f05fb65be6f284c736251fa19508ac47 GIT binary patch literal 249540 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433-subschema.avsc b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433-subschema.avsc new file mode 100644 index 0000000..cd64717 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433-subschema.avsc @@ -0,0 +1,12 @@ +{ + "type" : "record", + "name" : "Doc", + "doc" : "adoc", + "fields" : [ { + "name" : "id", + "type" : "string" + }, { + "name" : "text", + "type" : [ "string", "null" ] + } ] +} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.avro b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.avro new file mode 100644 index 0000000000000000000000000000000000000000..4dbf180dc1db685eeb37d339e837a04c382b1b8d GIT binary patch literal 1208 zcmb7CL2lGA6!lEIs>G%mv4BnF1!6I6`qF+ z2{ypB$#5SlR)qSg=Dx`MH^D6Y`ZyOLGmDe-^co}rVSa&iMyR*=tiL#|EEt*_0V=bU z>q@x=I>n-{R3#-oT;@p4nG;$y;PczPyc-!ASZ+kQ8p%55yvEhEe28K+HG#UT^Ii@B| znlP9qCYS`kA%ZX?096P=WD`vac#R~`dY+@y^)%XQH1!^)PtuQ5)NlwC^+)wCL4aZ~ zH4^-RfahdI2;1088PWuk2qoeqnIPMRAg6jN5WQr&ff#%!L@WlhG}|G>JQ$qaJF6{_ zha%u#VaL+*j*`P&64R~4mr)D%rzduKB`hlN>EBY z2`Gq^f>JD$B`5E2lh@tI_0>FF5~V1Tl=!FjCL&gTrWbfxi=y5X@?>EtN>auw!b_5s zR*F*i>dE#Yk+%JZS|SpUEhC@jB$8$X6c>C5sp?f@SqTc07%Lzlj+W;rmC7Wdf@5j- z&Z*@_teUdI6|T0Azwn|plqH;{wN!sf;@|MTQk*mXce}3E_Gycz?ws)-$k#QmzjD*7 zY_}fP`nzYhV(oH7LeVi9N;q3`$otXjDF}~icYIq$uj_l?ZWq7CX({+qu^w;9#r!>V zVGk3rkK>}PNV+mUNdK?E{e*tE&);;~-s+n!(GPnJ7E)5pf>M%Fx=TM2p2mfc)wyO0 zG!&QqLsf{mFLNAC#`l>O)QD{RoUD1jOTsvO-m?R6u~8slGkdKuGM)X45I6$9huDL!G>gK z5o5rJ*Q>9lMIm;s0PaR)IG)d{iz75Nb~rsQ(&oxZ8Ijz>?QTaVi25V7>MnlMc3q4ePX6rsWGVKB~zPG?u4(qEWrp=-I18nI&fS_X5op zU57UnCBq0=yy%G7WrUtlxycctJuXM6Ro#*GcxpswUCfByY?53`Qc)^P$d*P6qEaP1 Y4rpfN`6Xw=&0qXo$rRy2L(HQQ9N^IIrvLx| literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.gz b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/sample-statuses-20120906-141433.gz new file mode 100644 index 0000000000000000000000000000000000000000..3e7a44cb5887dc7bd614fc37bfdc967430a73b55 GIT binary patch literal 907 zcmV;619bc!iwFQPiKS5h1JzYsZ`(E$eJ{}eK=5H`F)yZMJFx}yA$8m50_m`ac_3)% zN@hcmDoHi%iv0Io>Z@|>d~HSBF#%{&SL8kCo~siv#-2X;LOp!)G@(wEl>*|g06Z}o z=!9BmRy;Me#t=54QgaKH`pmuIwFAp#MiX5tH3S20l7@J9rpxm%!Az{Ta!lC~#>WYTt-wbHxu})rl{L9kz-1{4 z7!Jv;1f99QkWmyN@Gf#I(#yi)gA5-l6Ih?E**acfw#s1rkYU_=E0iJU%9{Yfac_lo zO85}pU2^0=k87Hs4xoir2W+D>CiEj%nadI0{uC!O*b2*Wp@zgD4}X|JZj>@t$jpZt zoaYY0d3}krw{lx!YL0^zTQxd810-Em9j35~=;57PEHW}Z+}ey$TthBLh4CO@7xWzF zR>_i`_$yf!jhLr4Khml5j)lBBY`5;htuY(@SVn z5#DnGnsc_+B8jPr1o+2VEOp?_D45cV&+dA$8GDpTu{Vk-suOg&CdpUKIWR%qUKx zc`}>-gk}`S@uSV?LTK^^9VnG9{TGJRCvxCOA(h8D(#!bOYQFrYjuhYTNXysj)7h(U z<4AEgx-RF(?WqeouqXB)dy0RwJ>7-zp(fQHam=Oag0OjTso5-vmk)5Mc{7f=RNoEX z(WP#CYoM*4JHAGyMb{{ED-?N$d*s>g7vvYR7FuNDIlaxy;>VcT>YTB~S!ZT(UxEK- hX7}Rl0e5)E-u7D@oicVk&gVXF`v;|Puj6M8003;iz{vmr literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.7z b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.7z new file mode 100644 index 0000000000000000000000000000000000000000..94d62d35668b3ea8b7e3906a3c1d64590d9c66a8 GIT binary patch literal 71931 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.cpio b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.cpio new file mode 100644 index 0000000000000000000000000000000000000000..c13a1cb587a65705c9b55c8d7cba63144de68d08 GIT binary patch literal 116224 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

TwZ3)!_4=Z#10$|d^>zfENHl=v-V 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 HizM)WMK}L@ literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.tbz2 b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.tbz2 new file mode 100644 index 0000000000000000000000000000000000000000..21488d3f78555d16051c1a1754e6f5f7263d8f50 GIT binary patch literal 71127 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 Kg$V%B@GJ0Y%QRa6 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.tgz b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-documents.tgz new file mode 100644 index 0000000000000000000000000000000000000000..baca6bb343fe80b364278fbd9a9c2e3b1a1dbad8 GIT binary patch literal 69060 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¬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 ZpZNbv?(H)zb9>XNkEZbN(*La*_zxA%J0So7 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-zip-of-zip.zip b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/test-zip-of-zip.zip new file mode 100644 index 0000000000000000000000000000000000000000..f6b3edcc33a098450d6dcd7b28539538f9873799 GIT binary patch literal 299 zcmWIWW@Zs#009-(Aln7$TIGv@Y!DU(;*65q9NqHFl8nqe-Kxw2Js=K%YT#ht18O*T zLw1=yP@y#ta{_TmYDI}2NZ00*8YjrsADXzB|0)whfHxzP2m{C=*v$n>FfcMGfG8k<+Y;c-$_5f(1VVEl9R}hc X8HU|gU`24lu=){UtRqnM6|fEfaWFxb literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testAIFF.aif b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testAIFF.aif new file mode 100644 index 0000000000000000000000000000000000000000..97eac1d8e3d94c4ef139d3c8b5e2a3ca16a856fd GIT binary patch literal 3894 zcmZuzYlu}<6#n*^M#sU_EDe*Q98wf8yqwzSP{1%^+V z{$NYX%(hm_7>NR?+lmp*!#tQK)=V-+#vMh>p zRhtvA5`zJf=Ei*QwfKp5Kuw%&T*$J~cBX3aTAEC#7*K+qVf1DrY-M|^shk{?)K@ZGQgKndTdpa@TT;Kt!w}1C;Xj2okpi+r3(3Fv8dBH-{WA)Be{6V5oVrb-#Y(3%BT6uqf_8r`gtEh?Q-{K z!~gckHtIWRAJ4d(nfC)@*YJ5jM1JMkLti6(gDgHUg-mXu{cGyy>3fXwB&nLoBGq2% zPtbmb>viTdb3H)3?`a=RnM-CA^~6-DH^EfCB;I>GIU~46v(`nf z^~!_Kr?{?X_)@Ma{jE}|l52&%RJ)1sJA2%~XEX6Pv(8x7`-l2U=Ksm~`#AV^>i4kL zZWNV6C@#JN(?1oas6$bVfVn_^=Q+XZyX>b8=zo^{rgQBTsq`^_E@K;EE^Z_CbHHVj zU`}+P7}?3^S(w4(C(D4o)AY^a;w<`mn0GgfSqF2jnZ9wX!CFVAz#Q!Y8Xx9bAae9B z;4tUex1F^XGKZ`2C7}Ke6xHP@>PL~sHzKEQ7dh9-Bk&7(ya{vsQ{dPH-~{)q{}aZ~ zLvfZf>ESH#mdKDM&WH6IZiBgM3G-IK^!C6UCiah?iR@b^GG;k&bqCB2o}Vp?VNQ|z zu{}Wd3gU5YgZ2T(yHN~VkK&3mFkSmO_d_B#w2G`^{t}+g4|f7hYsrCi57vu}s)`I> z%|73NY1|?*nEStfyvVWTBE5V=SG^3Z-T`ynUoaD90-JXMAAbRC>J<5HHZb&7U@G@~ z2xo&wMaDI8A9-H(^8GmZh{(0`fqQ4bOzJ`L>WjcqVy>A3OyrC|T8v^TPyT4;OdBed zUe0FzMnHLvSp=NsIbF38hB3OVojxn8p0E1{0povy=~xD%FlwUrxJ z-PQ&dcj|qYH+d0?pI?joOMQ-g2k2T@?%8uHE;RG3x}IZBXP28nFTV}iXW+8_s}jED zrF_0S0Nlym74vVNC6^O&V~=)@>YFw%+5(0?wJ*E6w>u2Qo5Sx;z*9fvJT~NOUXbl` z%)f5N2med<53c0k8<|*- zv*zfT-{oc)F)pI|%AsZ`LcNTvn#Stg{YP+`ucrAPGkFI@WKnL4DLdhorHJdhwR{yP zTNzUogC|P9O4J>%fRH!@%O#&F+t;YcbN&JK!~ZY4lUZh!|1sRzveiO1x%>WWEU9Dq W2XLuntc5(k80&1&ZYu@Nviu({3A^_I literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testBMP.bmp b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testBMP.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c0176157039b25d71e93232a93ab16989add80c1 GIT binary patch literal 22554 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 + + + Apache Tika + Apache Tika - a content analysis toolkit. + + Apache Software Foundation + + + Apache Software Foundation + + + + Metadata + + Tika + Content + + + Apache Tika + + + + + + + + +

The Apache Tika toolkit detects and extracts metadata and structured text content from various documents using existing parser libraries. You can find the latest release on the download page. See the Getting Started guide for instructions on how to start using Tika.

+ +

Tika is a project of the Apache Software Foundation, and was formerly a subproject of Apache Lucene.

+ + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEMLX.emlx b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEMLX.emlx new file mode 100644 index 0000000..d9a7126 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEMLX.emlx @@ -0,0 +1,55 @@ +1795 +From: "Julien Nioche (JIRA)" +To: dev@tika.apache.org +Subject: [jira] Commented: (TIKA-461) RFC822 messages not parsed +Reply-To: dev@tika.apache.org +Delivered-To: mailing list dev@tika.apache.org +Date: Mon, 6 Sep 2010 05:25:34 -0400 (EDT) +In-Reply-To: <6089099.260231278600349994.JavaMail.jira@thor> +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 7bit +X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 +X-Virus-Checked: Checked by ClamAV on apache.org + + + [ https://issues.apache.org/jira/browse/TIKA-461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906468#action_12906468 ] + +Julien Nioche commented on TIKA-461: +------------------------------------ + +I'll have a look at mime4j and try to use it in Tika + +> RFC822 messages not parsed +> -------------------------- +> +> Key: TIKA-461 +> URL: https://issues.apache.org/jira/browse/TIKA-461 +> Project: Tika +> Issue Type: Bug +> Components: parser +> Affects Versions: 0.7 +> Reporter: Joshua Turner +> Assignee: Julien Nioche +> +> Presented with an RFC822 message exported from Thunderbird, AutodetectParser produces an empty body, and a Metadata containing only one key-value pair: "Content-Type=message/rfc822". Directly calling MboxParser likewise gives an empty body, but with two metadata pairs: "Content-Encoding=us-ascii Content-Type=application/mbox". +> A quick peek at the source of MboxParser shows that the implementation is pretty naive. If the wiring can be sorted out, something like Apache James' mime4j might be a better bet. + +-- +This message is automatically generated by JIRA. +- +You can reply to this email to add a comment to the issue online. + + + + + + flags + 0 + sender + "Julien Nioche (JIRA)" <jira@apache.org> + subject + [jira] Commented: (TIKA-461) RFC822 messages not parsed + to + dev@tika.apache.org + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEXCEL.xls b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEXCEL.xls new file mode 100644 index 0000000000000000000000000000000000000000..86b291606d098e2c636dcc3b72500c5c237c7aa1 GIT binary patch literal 13824 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 V$GXVKswt|uUhpF8>iG1A{|35}>oEWT literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEXCEL.xlsx b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testEXCEL.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8d5169f84108cc4af5dd66e2c0957eb52e6622e6 GIT binary patch literal 9453 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLAC.flac b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLAC.flac new file mode 100644 index 0000000000000000000000000000000000000000..ccec94717a47661d02153d1287cddbcf0b76db23 GIT binary patch literal 10604 zcmeI2{ZmwB6vv;tcU^FWc108zF;>F?CGbMN;RNi4pn@XGE);^u%OWTsvn-A#a_uWj4$KO_!I z+L(D2wJlw>##V={f)C3_=G86kF~!X8*#BVd#E9zX-99J7!w>otYqTjHn%cs;iEZD7 z{9a+o^irFREk34$PPdHeg_^R97d^as+&db|(x+C>JelAWxAUi5ufj%SpeAh1{_1XP znXcP(wZ^BXY{l`oit>x`rFq5!)&nN5r!k8b=#AISWfwgv_NAC&d`#-%_-1pN?qp%r zUQPY?6I(Tl<8=u}b#aX@VY1PG>MnD9#N?Js9gFWr6)cFoZ>=iVjMl^)hzTz;*Lt-s zR(GVw-uTk}xMr4D+Rm$5%?)dv*IkpT_(-KW;24hFU)c|egbM}IFu-%+2m(lcKOBkSKoT)t6K@34comX`;n2a2 z14+n32!0ie4m3FuBoe{Hi}76GQ}G`FcMgRotMKDII{y1%E?`8)@kfP7+?rrZ2KdiU znBo1fCLkwR@f-}`7C0yq0;I7LcNT@#B(HU(Nfpi;cE_nlt%W?V}4K=9*njYZijEh;J{ zu&G?xAem}Aa(%sxxHa*=f?~7K0d4)E{BB4d`_#ov^oZ%U#_U?>PO_``~s=Xn`!u zo+&(kD7@xY)cZ%O`YTJP#D4y5M(=V-O{eD_RqXaF9WIAfR9vZ>=IZY9)|{~$9d>k| zneMUl4d%eiqp6N{&S|qoZGFW-w zO};-wcOK z1uC(KFEOwNe6C1Rvg1OaVPJ4KR#5h=c;NyeQy z6_9>ycy2LpCmZ1#aUiywW{HH`odO5&!!1M;cPcndFv56<3XJ195*K!WRp#XW3oEhs A`Tzg` literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLAC.oga b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLAC.oga new file mode 100644 index 0000000000000000000000000000000000000000..37a12477e398afe3fea10e26cd18378a0d857889 GIT binary patch literal 10820 zcmeHN`%@EF6uz5{0V9}*C^~A17RLvI3qEm*Bn4E!2TB4hf`||v3dqFZXvGpoTWftG z65COF&Usd(S=R`@Zw- z{<1rnk(wHXBuKcz6iHcRSyOA#Fr)G&P1OW52(c+s6N4c;NQsmPIZuZ_dG-5kaA5OT z{j9~35?6hyUbW96um*8m84f?q|YN1DnDO; zUq6*U$Bp9x{Kh#$jXV4&EzHc+XBh*v`b9=nFuwtQWK1_^==rRcEZrcNXfUQP5=u36 zO)69MSq7nUGFd7hmz-$S2l{haewWa$byqaiVAK~_%YJiQ^% zuRkO@)o8L78q@R!)jw7Jdurn7gOCw=rZvd%(N(^3$mBn2~mK zbizoj`F#0lLu=*cf~7HGWtH{!E6ojVS(`p8?U7qGtJM+{(p>y->EP*yqPO}UkBHdo zTcpz`H|r`3ss>;GCiK@bOQyHhYOeRS?De>5*3QtC)YJ^|ZuM%eElD4JX#DX6kGRc0 z@mt1hcm2h#_IPIbie_Yy9-#_2-*sJ&4*gE%t%E zqEy#Q7qcfOqR?9D-7rhroF3cwh1XHt1n;!Xm-V_vdzJSci>2s5xi$1gK$!m|>zZ0i zxWRl=B?C8Ikdjd|NQ&|$G(;kG7uZEI5ZvK+F*K=^sJlXvLpD;G%|LKLQ0YY4`6N^l zFgSC95~UDG@)a}#DDH@JoH3LEz#K%8ya;F~L=@VKSLQ<4sa(V}@X#PakmO+RkFtp* z&_Wu>4n*{ac3LT53PEVkClb^`|xBOw6ktm~genWM+@|Z`Y{KOThv`5`U+lNfDPxkJU%if7g z&h7|)I^aTK_5z!RNuF3&s;-rdcJ7f^?IgV#{rJ!7Wv(H^m1<4T?o*wz&FYP;U0XLH z(@`@74F+$^BNkZEQI;cF3IW+@A3VQ{1ciq)q6#_SvH~=6l;`Y`LNed>Y_6)2-;! z;wZH)g~d%H77YpCx~{Z7;og1u;ipRu@4tA%!-|`t<%;cdZuJiC;@T7%-fPTPhuSK< z&eY1gNkY=5T*S+DIk{t3`TfW&NmJkxN5hP$=UNkfIgh)aq*s1?fyKYXUEj4rdrpCE zc^yFFi4lI`gqwmegWDDO?1@kOZFjFbVOvlKgJ0^JNPxVF6x&xp8H?F9(6xGT=zUud zmRS>{faon)6T=zYrodajG~srmJB!;qF{}tvC*lhh-^NQ6`1utE|6a;%s}NX$4)Ct$ zue@1)*fq3XjUB}|bE0q+m+p|g1PE9rf^xGLVF$(Bb+=a literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLV.flv b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testFLV.flv new file mode 100644 index 0000000000000000000000000000000000000000..d35e9bb6063f1ec353d27e0cea0e2c59de8bd3e0 GIT binary patch literal 90580 zcmZU)3p~^N{|Em0Y_knxYbVDl*@zO(w(d8vx#U)%3>CJDl!P4R685nv2d6{Ay0VmF zuIUtV8;2AXU3AigQ7fsK`&{>bJKx{q|M)*1|2^{PvCrkb&-?v;U7pY9>-E{O(*st6 zAV?kjL1YLfEc_2XC`cnDc$a_pLED4j2l3zl0mA#83Og8nEF>7R8Y#lBS@|srQj0j| z7k(6C`Lh=8fgtQr|6>71!y%UM|Gq<7r;qvhhxmapz^(oe>yNXK zk41x@W&Yn_*x$qb!~8>FFrEMI{{Q_L{>ZT)|Nq@Hv7Gh4yTH=Gx?l-j{NEs^s!^l~ zqF?BI3mw+aKno0*4XuHrYiJHwq+=-z(J&AVhvMy27w|sVtSYs*<8yDV*I&j6i-m_F zJcN+&kaQ)cq3U*Ge&_Hv(^}ueYhNyJGw}Q2jT3`^(KvC!FGAY)t(^nP8KlTn@5|-e z2cC3oTjlqo>Y|XJ5N`N>P zWc|Br#E)#%qYg!GUCq#8mYKB
  • L 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 Yw)D^pdlItgQttW9tIRk5@Bjb>3xH@d?f?J) literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testGIF.gif b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testGIF.gif new file mode 100644 index 0000000000000000000000000000000000000000..e09e64196e1fca1d4c461d4190cd16ace5a615c8 GIT binary patch literal 8495 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 RGs~jUZNhy39*+m?{tubM+V=ne literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJAR.jar b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJAR.jar new file mode 100644 index 0000000000000000000000000000000000000000..4677a623353daae297e7b5f44ab082f065a433f3 GIT binary patch literal 441 zcmWIWW@Zs#-~hs(g@0`rkN_tG3xls~h@-BjpPT-_Qw$8u3<2Kk93T};P-Ou)HH!dM zz%~0i`gyv!28ZbRx_$ONbK1vSSMMUPx31Q?Gv_x48C)@b@U%$J%U8$K_hRWP7S0(j zC67o)X=JcWf2R2(O-=l%c(~Z~CC|jPE1s#o&iqvLv4|1u5SHDIJKTZRfH24*Twq82 zK=TDi)HS!Dq*5;{u`Dsbn~_O`0oA`S&w%`k3g8|9`5s*>vh^U}B7iNB3D=6`caRBO c47i<%FyR=GiR@@rHjo@M5N-w1??4;|0D9?JF8}}l literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJPEG_EXIF.jpg b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJPEG_EXIF.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b93e771832ca9bb9bcaa5d1f8ec8767a55ccc3c GIT binary patch literal 16357 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 ZOOqc^2}(jhU@g%f|JgEmN)Y8g004!~w2%M* literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJPEG_EXIF.jpg.tar.gz b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testJPEG_EXIF.jpg.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3f35102eaefb0f9cdc648dace30c437b86ffa9de GIT binary patch literal 8722 zcmV+tBJJHDiwFRbsclgJ1MFG}SQFRUo+Rv|2!dKgjG{(V$RrR5DG6i&jF%`9>QbxT zAsI*{o0CLPYb&%>YE=}ss&%8NxYR1{OWn}A)$3aKii&!zRS*~SYK8wyCd&kp-2RXM zeV+S2kHa%F=X~G$e&;*i+2)*JLXD|23LGsoaLPmpI~{j z*s$dd!?6hoaU6)nX2r(Fvg6`mHUzWcH~>b6{{z0Xy39rsg3;-aN^exC(0sQzM5$Hl zJlG*B1KZ#KPp;-G&9|WTgVLmF5QRd4o`657`7u2a_G510jGdkdBN9F*>e zpI9DCmmvzZ4$nhu7*6D|U>?k-vtz-N7nca(kw~^&))%-Shz>0&CTdX#Twi8QPX+0o zC4{$lgD|Y=IhKd7MFz9kEZQ8Rb|nDsWletv(v-ObhJx3)EWpCuj5lE!VSg8nx5^KK zw6|4$9Hf2Ah_bxF?Qc!D$J@k;ISVksWkkgAYi=18qJcN4B2-37Lo2O*vS669lCaa< z41BPr;UEa2S=00Y2x?bO*uMho2U*j%K)QXoqh%=-G<&&JQkqubXjvbU+>ey@C#3^O zX~@b;0o^U!T5n7H!CW4TMaL6~JTP~;lJVsbblw+&5?6q-=nh*8(m@XaUG}gwzp}v# zl7e@^+W<>%{cjq3y*^Z#Oa>m4sWZkPc(0C8=(Ws3#K2_5z)U)nlw4>)6#1x$o`dG8 zb$mws-UAG}TFGY&=g450L5!-@11DjqeA3`-#iV>iqLPs;2uLdA6>1Gy)P&FrwHlp~ zSIB2rtn)w`7c&`j3&fPqXGpb39?Ik4b3nFUuc0TzuvrXX15@VmvLtC%3n0g5SbZ%h zD2OSDjnQLyOjcrIA`@ma+3aY5h&E2tnUKP0oiP$v2%uYRNKm5!QyWZbFre`~lA|}9 z_zXq>-D(;!7urobg#iUFS>gZ?Okj{sPXZ}kni|sE_ z6UJ``+5)gK_G=t6B9265I#KIg7o6X@8U?&}j9kWI7{(3+an9+4W6^ItakZ24k zh&G}olUkQ&w8WQ)Euis)8Vp606NLtYMvW>3*_atkV!BY+@FI;F9cV@cFoCjV$!a-b zGGo>zaG*$1I~Y^vsZ2W5XtVTNk91%w>7N&CJ;@A>c6c;N@WQ)Y9F6>#EcB?8(uLb@qgrK>Iiim7(yVQ9g zW_ciHIfxnrQ=2B*vDU0zt=H(W!Fsh3%|exC1v%cXR1TVM0*aZk_30Qg(WpQ`;L;F{ z5w$T}X>CLanu~!BWN&(V-Udi5H0X_HFeKp^*ov`>Y?w5)Mw5ZJvCWD@V1uM%D5@iM zF?-$#(7Kbg6x-kf5u+H>8_2b^iAWH+b$F0Q09k5B0#`M-yIH704KKVtM_1_MgQ@D@L zKFg4Xo;$TCdh5aYZ%{6b5utYNh(qU==+T8%5StmGM#W}qg2gbgN0g)EEg2%GQ48P! zbePyuf{c@f&EX6Hn^%sLmdIGG5S}=d;#}@vFdYgq)H)QwT3{_28-5sy8F9ZkG1e|; z6W9Uj9E{xl_Phg-rvu;Ms8FjnJ4QeY={xP6l?waT*5mOS=0ksk_`x-~MCDfRl8U=TT2ReKnpHUdC zL~{|d#>5c(g(D>wjcB!P@xoCq?uF5uGY(al9Bzn^Jm>F_L1f|$^3wHDvlt4-=jV4}tk8KYrtG>esOJ7kQBOY9HF z@$e0-8pNMbS;%qf;Bhn%&vjiYMs);1c7_jLbmu5XD4k zX13URjKyNX38HujOB@%Q5HA$Prb#$lF(*Dzk`T)gawJ@`$yVfdst>MR8d5#+ zEKj6188cB#j%ckPVs4fO9+*1j|Nup|cZ-VBlfNR2QNeL9CV3QvOceqfqN+DA;}zAvyR zUMBNgeXZ6J0hx>^)fr9r7m`#WFq_p%o;Y5TAeKmku^bUglFDL<*kZ0YRg%a`6DM*x zBDTd>XP!%s2~n0L4NuyCO(I6ofBJe~$ooRx7xKQ4_l3MKI4!0FX!bQ4Egx_h4kpa@(&db4eJ@nM#j(G(y@=IXw|v% z7e2za9qttyCzcG%%E>jEi@z+JH^021YU`oui@;(y1)_M9%Y%Gyo4($DUO<~13^E`- z{{DWzE26w$i00M9JA~yU>^U?GnOnBy+ zD4Sdhh1|NriI2?4&FJS9wej@Ir1aU|tQ!-44BU{hTi7e~3&Yr~gy5s$duo3F+x@2- z%|no@TLLF;uhKWon&5K^`E$Ez_JiBYHXoV3YxWm+inr~bw@Ep>t>#Ts(Dq@M6O&)Q zV4{X+^~{RG9AC|rUN=^E3uqAb(@XOrD(d@dcQo~0h`c<#wox8*kGWdVS+8jjh~Ja>hCpO z9`b0lZ`A0>>b8#;GLEN<_6?o;d}hPC;gwD8UOtVeXomJ(m>ead3T72O1HI4Fi_wZnhxtfzFiCi_NufO5>K4ZS@X4iJ7n<3umq1PW(Ug)-< zdiS{BBRZE&I1nnh!wZ@*pwprso=v$^Ky54yF5n&9+4cU-)tfebtU8%ibt+`9SC%xu zpH7t?TP&F5yMF%SFnRB_lFDzMb^PLW;>mRti#Q*zqc1#vtMiYaXLw)wXZmS#TTWQ| zwCTC$wz5lStr)ScOZ?URv;80Pi=oDSK_gbqt84eG#I$*ozSGGoD)pTWn<^_8D5iA| zu26R?p@atBoi`O~eDLkMkh9rU2gkkn(%)-+&f(1PrR|JIsk^t{G1o3w`rC?WJI+iU z_tN|43xB+*IyDR(1pV=}{qr>b+u^b-&gT7{Ez9|T}wm~`<*!)jkDVJdA7B8eg4?Kb)mCs*OZrhogGfio-?@XE-p8c z|9oiAHA~ivSR5sket2l=)#ty4ZVlXhA}aHSu(;vTpr0R&m{&LASd)1oD@7Z5_j*kE zfNd8;6xV)P?|XguwUiR`sG$)fckB~K9!eR1KRlut`u6vm?I|~XhCiOMf8+U2ro-CdQxp2vnx0n; zTro=d*{oreo8uqsZjy~XaxY=p(+sL$LovsLA%oQsx_4{<|%oWMHnL9>L3;%IrV;{w|cilXC|MK|E>-Eu}rhT&e%BR1}!xr=# zRFsrb?EiNAZ{bPNM)Xcur|87_9m_hL?2%Hm=9#K=@7ig@BNC1JBm6^0mwY&@{ET$h z!yYgGRlQi79jAY|Z5yXe*oR-LDsO$cH*npoeYpi`4?9bbpvTvWdUu1Uudm(Z*NvS~ z*Eu%5eCYIkQ$&~JM%Kuc{qdFSGzZtQtTf(g`jt0ExI%Cn& zx3eeh-R>R!LpoOW&E-{VrFexO!xd(n(hX3u`Y9%DB)p zQWJXp(1hq+SBkmSv;BjoK3;x?k+@Q9u7l(X5yJXWC_k zQ+^R6UVPMjDWCh6#~kE0_17r)C({l1SLyAcqb_b~dbywf>g5#r!xVi<$KNP*oXzPG zF$sOkbDMV7n&Xqdspfnza7I@y7XNfDv>v*+#Y|)T zVjfrSGgrkJv1d$1QTS@Zm9S%XWIK26ecg>SFDJQV@aqNF6uH&OZRb8`yecV<`1bzy zy1c&YUJkzSYS7PbL~}m!D+;02X5Wn(T4wN}9IV5JUsF__I6ZyiXWw6;chD>x`Zaxa z%H!LX9Io0w<4ymHA>RD`YgW(S;FIw`?bqd76ABv!@KMq= znUqL(=K%&t!{}~xfFnjrGgLyl#|R~bQKOlTR8mrq8d8GvVU&Uj2*`WRd%gd~%kT4j zUH9`m-=1|KSejP}&_wb`VTmot@h^Fq53?3x#zk7Kx;q(FBWG15Z>Dpkn)EGV)AS+R zST%Qq+!Nz$*Y$?J4Upa)?~5l_ZODsAOm>8w=mChy7GBL?R~^F`kQ|&v5Z(-t7B?~v z8WG!qzXI~gLf-~%HE85kGy@p62J>7f-oHTS(e_Y1S&6I2t+B*zHH-P62p=_;e=|tz zDA>^B6=y;^z8@lVsuF&k!@U|nczmufS7R&7p`4WRoR#HN&s#~R;7ndDD_`YzcYUXp znGS=NC%epYd<|~pj<>6c#$#i`QuvOz3o0D9vmbke=CVCXZ6-k~DR@L5^FswFa`{2L9=Y zT;fZkW#^GEXj=)$Fn>Cw{oA^`y9=RE#YPVL)VuBe)P-T9XJKy)+r9o)j3$9Z;Cx3% z9VJX;+P$iFA zC-U7^IgyurXXRtb7xYK&iDi7EoJdV`IG;WX;kddw967Q1#RJ^qE7r>0;PeKzV)roz z3Phn=QYY800h&kdr0fi#?@H__V!-*ExOr>`idQhV0HPS5j`iOtBS0g zzU43ZaLp9s)=e5+KI^)&LQVEjCLP%)>5H)&dV8oxfnj39tOFT zg3W>KQBzt7%OwQ&>l&bE{CGZN{r3B}A^8j6y8HQ_QvTuLqOWu-nG0{lh54!TWw@EQ z3BZ!kjONy<(jo>WA?gz*DZd`X-)mL-zRy7acI`W#{Ta!*2v7V;Ldw#T%kr-mKktlu zg|lu%ROGTjY9g&XV&jFBhm7JV>9mAleDTWrF8MxcqUsn}Zis6wg9drGrUv(bzklRI zEZIP|O-j_)w7U!%^z*(0w9a==J`WbCZ7qYTzV}_w9ToT6syck0wZm^<$IUI7K8ZD& zxa53Fw&#@Ts-K*S$@;1N=jkGC9=gBzwlL^U3*;`)`@p+z02iI!crU$2;Z-+df3_M- z&EkQEz_}mHBkv>0!m@hN$b`b-N})dPa7AQxNPK!6j;ow{-Kq;Mh38jF5B{l7V4~;g zH)P77sRhazj0&XXm~yRoYGePN7$_XLsw*Yd-T$~5HSwWMV54=9Q?c~rVv}?G;fI&~ z^X%A_^(mjO%E12qL|n+y^EegZ$C?^s4J$CN#$rwsj zOQFbROZz`qyZC>L36v#*fuqPtLsH_i2)1E#XT^uE|YrtdFKRT=byeImEc zUE;s)Y@ji=yH(Y@d-k>;l03!@zA}nnawNc)J*63*s)G$w(`w$)BYsB*l(yp|mR8$u zW_pUCP$@B8>2pQJ%X8&iXS9OFLNUlMH0gJtHN;HA#j#Y1c_w#r5Y_x5_%1gR8d)f+ZHM9 z6;q6p+bwU`(oW+8&;(_k+iKELN%4~Nk`gPOrL#g3$G9Ox2vkqzXSS4d-}t}MaiBC? z=RhKZk-T?w>b!^mcItG|w&tCsBNWG#I3GL0L!%W_76(Dp`xK)l2FP?QnG#(A5~dbW zy84IGQQ-x$>C>NX=@mGbTq0+>_Id+{YIbJ{4`=s(K1RZ6W`%rDvQ5^?g@`_MmT`or z;TH=6o$mny6k2N6#&q7fq}usMMkHAW&=~Y;N*ZC}hAE=wg}lkUtGql2O_wg-Z=20r zy{Mz=0c`g{!)d0l01<;r9;*Q|(mbNE0$@R&ifQ9T>;*W!%R2WO5Vpd8;<>n6mrKA= zw)!E5@ysC~~q(x=saBzposP%(0T(kOb<=y;2fzLdQz0(~Pzm3JEdf0Wx(f zh9^b9Idbn!%7#$d0J6Mzs9);LwXQkKSOsZjP?QumuEIy$nIIyG0$zMtL?D;Hfwmqom6*Oj zjZQu08SIhGnqYzP^j$21sqjuhK9sJd@UUu>l!J%ooZ_r(umW-P_7l^tQ{^A-q(FzA zYXG=>0ssUE>RkgOe)Pb9FQFL4Rb;u6`3C}iL@^=2^xgW+2{1Ah$p?f6U^Ao^l{JrS z=Upn&t_@29PZ*j|U!gBUE(Xe2Y6u0jmsAh{$Ti-vKohE`nk@R`)M6;ipQdvM=S<3fo7HUvNa97Ro6#0Bn7dZt)( zf;}uyNL7tpgm{d-+g=^wt>S!at~y73`=TW88t{DCr?^0Bg@(l4v3zt2+C=*r?8Hmm`NA-kK+}^BZOYf+!ur6ScsRA?l27=f!IPa;UDO z`{?9ZMM(ZMKr_qtyi~S7G8LFGAF5y@mutM1@{-=6P>LIhQMH>x| z^*j^Hy&59RxCc!)OP(d3u&|DDU3FaeC)toyKZ`|L>GwPhy9l}lZ14|v>0L%C{4K8a zH0&{1U+gMr#^+kiXhsd1+FrQmayQB<^se@A?Q!a9BxlsjgC`thxjH?gKK!*9;?rC@ifwp`1m`Anq| zItn#URCOA@A*E{9kxYm)$#1C;*(^CoV4wjsy?NHysJhfQntg&TdMF^MmrRqBl10?O ztRGXHDZMYK`sRqyEvi*CS>`A4EnUEAk$tGn9SQ7sT@BQ-6|t>MP4=iRLKm{4O40%`!~)VKL`u%0zl)gmsy zGI4(zvWNQTDyA>TZVhnSe6F}kv){#cgC4l9f+F6>eyzfQ%i+h)qXvTUg*flb(jBx< zN96OVivMM(@jqx*JXOuVu+kZa8*?tMwsby^MO_1$t3W^dPps!uzYWp$r?;5nIi@l< zPjci*B_%rL+&{5L&@asV?(1H!twXF`JxI7@3f2p9=M*Ze?_ZI4q!8nJQ9wg--jUQ$ zuRLyRciLydkx&H@CZzv860X1Xl%?exiARhH< z&%~_V9<}}OAr8Tbu;aQvK9fwCLgRxoB6&45gHgrRhiQHz-NMI_f1E<>KXv=g{Fx}3 z*&EvacbIqo8wMIKzQu~gkC_ZBolGoN9$f=&Wi>Y3f7Q@@6i3*<|Fs+gE~Vux-^;#@su>9`mQSJdyoUlGDdGP(;gZ#JQr(RGv z?~f->nsAQ64dwB3N(7;rIpx~IPKlw7Wjjkl%3P=rDg48xLky4p=YcqYIU`cg&!piD z^Ut2o)nA|eyXJnUDSZBy?lOAO(Pb6Hfm>yc)zCAg(&Lchy424yBeT-!t0rlw<}`Wl wVpRb&%;q$sG|*IsicfJ~F92@bxN+mgjT<*^+_-V$#{awj01(2@&HzvV07T6)g#Z8m literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testKML.kml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testKML.kml new file mode 100644 index 0000000..5f17f62 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testKML.kml @@ -0,0 +1,917 @@ + + + + + + KML Samples + 1 + Unleash your creativity with the help of these examples! + + + + + + + + + + + + + + Placemarks + These are just some of the different kinds of placemarks with + which you can mark your favorite places + + -122.0839597145766 + 37.42222904525232 + 0 + -148.4122922628044 + 40.5575073395506 + 500.6566641072245 + + + Simple placemark + Attached to the ground. Intelligently places itself at the + height of the underlying terrain. + + -122.0822035425683,37.42228990140251,0 + + + + Floating placemark + 0 + Floats a defined distance above the ground. + + -122.0839597145766 + 37.42222904525232 + 0 + -148.4122922628044 + 40.5575073395506 + 500.6566641072245 + + #downArrowIcon + + relativeToGround + -122.084075,37.4220033612141,50 + + + + Extruded placemark + 0 + Tethered to the ground by a customizable + "tail" + + -122.0845787421525 + 37.42215078737763 + 0 + -148.4126684946234 + 40.55750733918048 + 365.2646606980322 + + #globeIcon + + 1 + relativeToGround + -122.0857667006183,37.42156927867553,50 + + + + + Styles and Markup + 0 + With KML it is easy to create rich, descriptive markup to + annotate and enrich your placemarks + + -122.0845787422371 + 37.42215078726837 + 0 + -148.4126777488172 + 40.55750733930874 + 365.2646826292919 + + #noDrivingDirections + + Highlighted Icon + 0 + Place your mouse over the icon to see it display the new + icon + + -122.0856552124024 + 37.4224281311035 + 0 + 0 + 0 + 265.8520424250024 + + + + + + normal + #normalPlacemark + + + highlight + #highlightPlacemark + + + + Roll over this icon + 0 + #exampleStyleMap + + -122.0856545755255,37.42243077405461,0 + + + + + Descriptive HTML + 0 +
    +Placemark descriptions can be enriched by using many standard HTML tags.
    +For example: +
    +Styles:
    +Italics, +Bold, +Underlined, +Strike Out, +subscriptsubscript, +superscriptsuperscript, +Big, +Small, +Typewriter, +Emphasized, +Strong, +Code +
    +Fonts:
    +red by name, +leaf green by hexadecimal RGB +
    +size 1, +size 2, +size 3, +size 4, +size 5, +size 6, +size 7 +
    +Times, +Verdana, +Arial
    +
    +Links: +
    +
    Google Earth! +
    + or: Check out our website at www.google.com +
    +Alignment:
    +

    left

    +

    center

    +

    right

    +
    +Ordered Lists:
    +
    1. First
    2. Second
    3. Third
    +
    1. First
    2. Second
    3. Third
    +
    1. First
    2. Second
    3. Third
    +
    +Unordered Lists:
    +
    • A
    • B
    • C
    +
    • A
    • B
    • C
    +
    • A
    • B
    • C
    +
    +Definitions:
    +
    +
    Google:
    The best thing since sliced bread
    +
    +
    +Centered:
    +Time present and time past
    +Are both perhaps present in time future,
    +And time future contained in time past.
    +If all time is eternally present
    +All time is unredeemable.
    +
    +
    +Block Quote: +
    +
    +We shall not cease from exploration
    +And the end of all our exploring
    +Will be to arrive where we started
    +And know the place for the first time.
    +-- T.S. Eliot +
    +
    +
    +Headings:
    +

    Header 1

    +

    Header 2

    +

    Header 3

    +

    Header 4

    +

    Header 5

    +
    +Images:
    +Remote image
    +
    +Scaled image
    +
    +
    +Simple Tables:
    + + + +
    12345
    abcde
    +
    +[Did you notice that double-clicking on the placemark doesn't cause the viewer to take you anywhere? This is because it is possible to directly author a "placeless placemark". If you look at the code for this example, you will see that it has neither a point coordinate nor a LookAt element.]]]> + + + + Ground Overlays + 0 + Examples of ground overlays + + Large-scale overlay on terrain + 0 + Overlay shows Mount Etna erupting on July 13th, 2001. + + 15.02468937557116 + 37.67395167941667 + 0 + -16.5581842842829 + 58.31228652890705 + 30350.36838438907 + + + http://developers.google.com/kml/documentation/images/etna.jpg + + + 37.91904192681665 + 37.46543388598137 + 15.35832653742206 + 14.60128369746704 + -0.1556640799496235 + + + + + Screen Overlays + 0 + Screen overlays have to be authored directly in KML. These + examples illustrate absolute and dynamic positioning in screen space. + + Simple crosshairs + 0 + This screen overlay uses fractional positioning to put the + image in the exact center of the screen + + http://developers.google.com/kml/documentation/images/crosshairs.png + + + + + + + + Absolute Positioning: Top left + 0 + + http://developers.google.com/kml/documentation/images/top_left.jpg + + + + + + + + Absolute Positioning: Top right + 0 + + http://developers.google.com/kml/documentation/images/top_right.jpg + + + + + + + + Absolute Positioning: Bottom left + 0 + + http://developers.google.com/kml/documentation/images/bottom_left.jpg + + + + + + + + Absolute Positioning: Bottom right + 0 + + http://developers.google.com/kml/documentation/images/bottom_right.jpg + + + + + + + + Dynamic Positioning: Top of screen + 0 + + http://developers.google.com/kml/documentation/images/dynamic_screenoverlay.jpg + + + + + + + + Dynamic Positioning: Right of screen + 0 + + http://developers.google.com/kml/documentation/images/dynamic_right.jpg + + + + + + + + + Paths + 0 + Examples of paths. Note that the tessellate tag is by default + set to 0. If you want to create tessellated lines, they must be authored + (or edited) directly in KML. + + Tessellated + 0 + tag has a value of 1, the line will contour to the underlying terrain]]> + + -112.0822680013139 + 36.09825589333556 + 0 + 103.8120432044965 + 62.04855796276328 + 2889.145007690472 + + + 1 + -112.0814237830345,36.10677870477137,0 + -112.0870267752693,36.0905099328766,0 + + + + Untessellated + 0 + tag has a value of 0, the line follow a simple straight-line path from point to point]]> + + -112.0822680013139 + 36.09825589333556 + 0 + 103.8120432044965 + 62.04855796276328 + 2889.145007690472 + + + 0 + -112.080622229595,36.10673460007995,0 + -112.085242575315,36.09049598612422,0 + + + + Absolute + 0 + Transparent purple line + + -112.2719329043177 + 36.08890633450894 + 0 + -106.8161545998597 + 44.60763714063257 + 2569.386744398339 + + #transPurpleLineGreenPoly + + 1 + absolute + -112.265654928602,36.09447672602546,2357 + -112.2660384528238,36.09342608838671,2357 + -112.2668139013453,36.09251058776881,2357 + -112.2677826834445,36.09189827357996,2357 + -112.2688557510952,36.0913137941187,2357 + -112.2694810717219,36.0903677207521,2357 + -112.2695268555611,36.08932171487285,2357 + -112.2690144567276,36.08850916060472,2357 + -112.2681528815339,36.08753813597956,2357 + -112.2670588176031,36.08682685262568,2357 + -112.2657374587321,36.08646312301303,2357 + + + + Absolute Extruded + 0 + Transparent green wall with yellow outlines + + -112.2643334742529 + 36.08563154742419 + 0 + -125.7518698668815 + 44.61038665812578 + 4451.842204068102 + + #yellowLineGreenPoly + + 1 + 1 + absolute + -112.2550785337791,36.07954952145647,2357 + -112.2549277039738,36.08117083492122,2357 + -112.2552505069063,36.08260761307279,2357 + -112.2564540158376,36.08395660588506,2357 + -112.2580238976449,36.08511401044813,2357 + -112.2595218489022,36.08584355239394,2357 + -112.2608216347552,36.08612634548589,2357 + -112.262073428656,36.08626019085147,2357 + -112.2633204928495,36.08621519860091,2357 + -112.2644963846444,36.08627897945274,2357 + -112.2656969554589,36.08649599090644,2357 + + + + Relative + 0 + Black line (10 pixels wide), height tracks terrain + + -112.2580438551384 + 36.1072674824385 + 0 + 4.947421249553717 + 44.61324882043339 + 2927.61105910266 + + #thickBlackLine + + 1 + relativeToGround + -112.2532845153347,36.09886943729116,645 + -112.2540466121145,36.09919570465255,645 + -112.254734666947,36.09984998366178,645 + -112.255493345654,36.10051310621746,645 + -112.2563157098468,36.10108441943419,645 + -112.2568033076439,36.10159722088088,645 + -112.257494011321,36.10204323542867,645 + -112.2584106072308,36.10229131995655,645 + -112.2596588987972,36.10240001286358,645 + -112.2610581199487,36.10213176873407,645 + -112.2626285262793,36.10157011437219,645 + + + + Relative Extruded + 0 + Opaque blue walls with red outline, height tracks terrain + + -112.2683594333433 + 36.09884362144909 + 0 + -72.24271551768405 + 44.60855445139561 + 2184.193522571467 + + #redLineBluePoly + + 1 + 1 + relativeToGround + -112.2656634181359,36.09445214722695,630 + -112.2652238941097,36.09520916122063,630 + -112.2645079986395,36.09580763864907,630 + -112.2638827428817,36.09628572284063,630 + -112.2635746835406,36.09679275951239,630 + -112.2635711822407,36.09740038871899,630 + -112.2640296531825,36.09804913435539,630 + -112.264327720538,36.09880337400301,630 + -112.2642436562271,36.09963644790288,630 + -112.2639148687042,36.10055381117246,630 + -112.2626894973474,36.10149062823369,630 + + + + + Polygons + 0 + Examples of polygon shapes + + Google Campus + 0 + A collection showing how easy it is to create 3-dimensional + buildings + + -122.084120030116 + 37.42174011925477 + 0 + -34.82469740081282 + 53.454348562403 + 276.7870053764046 + + + Building 40 + 0 + #transRedPoly + + 1 + relativeToGround + + + -122.0848938459612,37.42257124044786,17 + -122.0849580979198,37.42211922626856,17 + -122.0847469573047,37.42207183952619,17 + -122.0845725380962,37.42209006729676,17 + -122.0845954886723,37.42215932700895,17 + -122.0838521118269,37.42227278564371,17 + -122.083792243335,37.42203539112084,17 + -122.0835076656616,37.42209006957106,17 + -122.0834709464152,37.42200987395161,17 + -122.0831221085748,37.4221046494946,17 + -122.0829247374572,37.42226503990386,17 + -122.0829339169385,37.42231242843094,17 + -122.0833837359737,37.42225046087618,17 + -122.0833607854248,37.42234159228745,17 + -122.0834204551642,37.42237075460644,17 + -122.083659133885,37.42251292011001,17 + -122.0839758438952,37.42265873093781,17 + -122.0842374743331,37.42265143972521,17 + -122.0845036949503,37.4226514386435,17 + -122.0848020460801,37.42261133916315,17 + -122.0847882750515,37.42256395055121,17 + -122.0848938459612,37.42257124044786,17 + + + + + + Building 41 + 0 + #transBluePoly + + 1 + relativeToGround + + + -122.0857412771483,37.42227033155257,17 + -122.0858169768481,37.42231408832346,17 + -122.085852582875,37.42230337469744,17 + -122.0858799945639,37.42225686138789,17 + -122.0858860101409,37.4222311076138,17 + -122.0858069157288,37.42220250173855,17 + -122.0858379542653,37.42214027058678,17 + -122.0856732640519,37.42208690214408,17 + -122.0856022926407,37.42214885429042,17 + -122.0855902778436,37.422128290487,17 + -122.0855841672237,37.42208171967246,17 + -122.0854852065741,37.42210455874995,17 + -122.0855067264352,37.42214267949824,17 + -122.0854430712915,37.42212783846172,17 + -122.0850990714904,37.42251282407603,17 + -122.0856769818632,37.42281815323651,17 + -122.0860162273783,37.42244918858722,17 + -122.0857260327004,37.42229239604253,17 + -122.0857412771483,37.42227033155257,17 + + + + + + Building 42 + 0 + #transGreenPoly + + 1 + relativeToGround + + + -122.0857862287242,37.42136208886969,25 + -122.0857312990603,37.42136935989481,25 + -122.0857312992918,37.42140934910903,25 + -122.0856077073679,37.42138390166565,25 + -122.0855802426516,37.42137299550869,25 + -122.0852186221971,37.42137299504316,25 + -122.0852277765639,37.42161656508265,25 + -122.0852598189347,37.42160565894403,25 + -122.0852598185499,37.42168200156,25 + -122.0852369311478,37.42170017860346,25 + -122.0852643957828,37.42176197982575,25 + -122.0853239032746,37.42176198013907,25 + -122.0853559454324,37.421852864452,25 + -122.0854108752463,37.42188921823734,25 + -122.0854795379357,37.42189285337048,25 + -122.0855436229819,37.42188921797546,25 + -122.0856260178042,37.42186013499926,25 + -122.085937287963,37.42186013453605,25 + -122.0859428718666,37.42160898590042,25 + -122.0859655469861,37.42157992759144,25 + -122.0858640462341,37.42147115002957,25 + -122.0858548911215,37.42140571326184,25 + -122.0858091162768,37.4214057134039,25 + -122.0857862287242,37.42136208886969,25 + + + + + + Building 43 + 0 + #transYellowPoly + + 1 + relativeToGround + + + -122.0844371128284,37.42177253003091,19 + -122.0845118855746,37.42191111542896,19 + -122.0850470999805,37.42178755121535,19 + -122.0850719913391,37.42143663023161,19 + -122.084916406232,37.42137237822116,19 + -122.0842193868167,37.42137237801626,19 + -122.08421938659,37.42147617161496,19 + -122.0838086419991,37.4214613409357,19 + -122.0837899728564,37.42131306410796,19 + -122.0832796534698,37.42129328840593,19 + -122.0832609819207,37.42139213944298,19 + -122.0829373621737,37.42137236399876,19 + -122.0829062425667,37.42151569778871,19 + -122.0828502269665,37.42176282576465,19 + -122.0829435788635,37.42176776969635,19 + -122.083217411188,37.42179248552686,19 + -122.0835970430103,37.4217480074456,19 + -122.0839455556771,37.42169364237603,19 + -122.0840077894637,37.42176283815853,19 + -122.084113587521,37.42174801104392,19 + -122.0840762473784,37.42171341292375,19 + -122.0841447047739,37.42167881534569,19 + -122.084144704223,37.42181720660197,19 + -122.0842503333074,37.4218170700446,19 + -122.0844371128284,37.42177253003091,19 + + + + + + + Extruded Polygon + A simple way to model a building + + The Pentagon + + -77.05580139178142 + 38.870832443487 + 59.88865561738225 + 48.09646074797388 + 742.0552506670548 + + + 1 + relativeToGround + + + -77.05788457660967,38.87253259892824,100 + -77.05465973756702,38.87291016281703,100 + -77.05315536854791,38.87053267794386,100 + -77.05552622493516,38.868757801256,100 + -77.05844056290393,38.86996206506943,100 + -77.05788457660967,38.87253259892824,100 + + + + + -77.05668055019126,38.87154239798456,100 + -77.05542625960818,38.87167890344077,100 + -77.05485125901024,38.87076535397792,100 + -77.05577677433152,38.87008686581446,100 + -77.05691162017543,38.87054446963351,100 + -77.05668055019126,38.87154239798456,100 + + + + + + + Absolute and Relative + 0 + Four structures whose roofs meet exactly. Turn on/off + terrain to see the difference between relative and absolute + positioning. + + -112.3348969157552 + 36.14845533214919 + 0 + -86.91235037566909 + 49.30695423894192 + 990.6761201087104 + + + Absolute + 0 + #transBluePoly + + 1 + absolute + + + -112.3372510731295,36.14888505105317,1784 + -112.3356128688403,36.14781540589019,1784 + -112.3368169371048,36.14658677734382,1784 + -112.3384408457543,36.14762778914076,1784 + -112.3372510731295,36.14888505105317,1784 + + + + + + Absolute Extruded + 0 + #transRedPoly + + 1 + 1 + absolute + + + -112.3396586818843,36.14637618647505,1784 + -112.3380597654315,36.14531751871353,1784 + -112.3368254237788,36.14659596244607,1784 + -112.3384555043203,36.14762621763982,1784 + -112.3396586818843,36.14637618647505,1784 + + + + + + Relative + 0 + + -112.3350152490417 + 36.14943123077423 + 0 + -118.9214100848499 + 37.92486261093203 + 345.5169113679813 + + #transGreenPoly + + 1 + relativeToGround + + + -112.3349463145932,36.14988705767721,100 + -112.3354019540677,36.14941108398372,100 + -112.3344428289146,36.14878490381308,100 + -112.3331289492913,36.14780840132443,100 + -112.3317019516947,36.14680755678357,100 + -112.331131440106,36.1474173426228,100 + -112.332616324338,36.14845453364654,100 + -112.3339876620524,36.14926570522069,100 + -112.3349463145932,36.14988705767721,100 + + + + + + Relative Extruded + 0 + + -112.3351587892382 + 36.14979247129029 + 0 + -55.42811560891606 + 56.10280503739589 + 401.0997279712519 + + #transYellowPoly + + 1 + 1 + relativeToGround + + + -112.3348783983763,36.1514008468736,100 + -112.3372535345629,36.14888517553886,100 + -112.3356068927954,36.14781612679284,100 + -112.3350034807972,36.14846469024177,100 + -112.3358353861232,36.1489624162954,100 + -112.3345888301373,36.15026229372507,100 + -112.3337937856278,36.14978096026463,100 + -112.3331798208424,36.1504472788618,100 + -112.3348783983763,36.1514008468736,100 + + + + + + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testKeynote.key b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testKeynote.key new file mode 100644 index 0000000000000000000000000000000000000000..6e0e032f969c89dc8b9c86fe2e9e60ecc83ca710 GIT binary patch literal 221745 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

    ;$jNDvD6$hWnKl)le8&8X%tJX2X4 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%0A(KWO^#O9XNOm<@v04dam(f8RyRFgLQ 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 VE7K;Ya97u^%vV=SyO3RG{~N;JA|U_( literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testNumbers.numbers b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testNumbers.numbers new file mode 100644 index 0000000000000000000000000000000000000000..51360e01f0ecc1e5685114f98c51be37d7ab8244 GIT binary patch literal 134571 zcmdqJXH-5CDLH|A4C%qEU@I zcPw@Ev{g0ktNeLE)N1AF>54%H0B-KS-g;`vY{rjF*l=e7EPxIm1=s*gD;pnAB^{mn ze<=8`x09)B>;Nz>aElFx0h?Ic`q;REa1{unY&^Yv0RW>MghvB> zJwX`r83 z5Cy`*?zT?u06@eK!U{HyR<8tpADA%F5xN@L#-u zJ;8zRI{A3IS_S?2@xSxt=IRH|*Pn|5yc4;*KDb^RDzI$XTHV$B8}@Ylvu1zl?c5FY z|E_npexUs~Z11hA_c!e6tNd@U&cna!gB|ZY_#3wKQTZnxXRCYHYxW1fx1XND->{Fr zzRKTlu;W9czhPUuyZ@}WcT&~(yWYuHcxe8U20$MO0^9)`Knt(}d;nj-4)FH1 z3-ks10e3t+gS?#_9DUi8K#8;CXVY-E5#(nR6&4Y`e*OQM>sr_TBKC0Rj}Ad-@cva7 z7yG^j1hs6i17;JBStYs4MrQr0LCQ762>o#V@v>(5R(S;2BrY! zZOl8E+L$Jo_L$z7PcdULGcZ45mSWap_F#@68s{)}CX-Gx1gy^ei? zgM&kZ!-FG*qmJ_k#~J4dPCU*#oHCqNobNcRILElSxb(PuxbnE#xK_BnxKX&Taf@+V zaK~`haglh0c&vD$c&d0NcbcjLp2;Tsq1JnRPSVeDn>^Be>mw>j)NUUIZ^z&TktwKzjKi#TVw@VRbt zIdWxk^>CeX^Kct+M|0P5Z}HIaXz&E{6!HALNqiG})9dEPn-jNiZr#4+a_il#QCI-WLoLtQFiB;uJCw zN)hT2LJLa>y9(zD&xufo+!F~CsTcVz$}4Iknk70RMl7Z(1{13jLx}T<+lgn3&qz>8 zXh}p%v`bt{N=bT4mP&3*aY{XwdMh=3o9edC?fBch(%90<(lF^p=`$Hg8DE*NG6%8( zvM#cPvRiUIa&~gLa;x&}@>cR6s`#dYIkGr4y#b87^u8aSx{wHbxp(mmjqSvEOsc)%YsDJWM`C-z-IfI)9eg^G^q=sgO1%{_a zca2hwmW+jrLyZR>F+6g5RA+)~VrcT&(G4^Al$AynkR@zn{t&XiVtlwJ0ZSL4)+WfLrw0&v2Z6|M+YPV@GZ=Y(vZ0wE?{ej8&TOi+iUBi$|cxcTYag zD9?qtQ zygq_C;#tIMq*`QA6iJkK)O56Lbj}N`7fvsRW5i-!$Dm_vWBcQT<1*q<@iy`O2_gxv z60Q>M6Ni%|ld_X>lHHT1QlKecQpr<;Q&-cp(rR9^y^MW%lx~^cmm!{!lSz>2m$~%n z{;RszoUfB#quw~anaonoDtpWHHsUVBTTNLVTLY;Hs)5%!)-KgOs{8)!-naI8 z+4|}R!G`?C8;w~_)J;jv1kDl6S1rLU$E}{NyKN3_tL>KUa~;MV6P>!9!(EzPz1^za z9X(1tExq!+jeRnG-}-O&*A7Sy)C@`tRu4%GRS!!J*NjMw)Qw7y)_<4#-aG~!Ya72i z-aVl)F);aH^81v*)XcQm^wNy&%+?RrABb81*^9YnKe2zt&Xdh&EHEv6T)eedwj{aK zw0w7Ya7BM*Zq;V>*P727YCU3ucq3zzb+cegbgOY&b$fKjbZ7mS=dX+1s6Fz%xBEBu zs}2+o2I0o=b%ZzK>UaDh{bBx*_)+_@&hf&D+sVagERr7iIXFMtW&G3@OD;CDU%5QAX@CFmCuwEpD_|7r0jI`{{49V`5G zT|fT~{>xwf^GXr`a$5nwKoI~m!14wxJOJnlf=?Z=JX8cQ#Kittz&F>IkG+`a9{@sF z3%Vv5S67FiZ-{#f04}Gmt}be?t}Z`=KKm>Hw4VIsgI~A4F8~s6a92lEv~8Cm;!pp7 zyIm~#7wX#{=ddl9&*70D~NYNe;Q{1Xw{%ut6say#6o)-XIv5 zSlA#%ARS~OiT=rSZpkiaY!im9>5~Urnn)ZghQ!oh0E?mCHg$&10IKRMH{u= zcQ~h*wRadk0Szr3Jp&gv&&^xB;u4Zlx20w7+*MIkQ`fks|IonD2y`!PZ0+nF9G#qf zeEs|b0)v9XBO;@sU&O?wroBwh$b9ws&Bsr>DCD6iT|dR$i3sqR;WDlv6%bwBd7z>A|V3y}uLCaEdQ;A+A~b!`c5D zV`2ZVIQu7K|Ke*FAi{)zi-$=LK!M8(z$Q-+HxKju$7e*O_k`td{vY)Osez2@DsJ6; zj}iOtg)aj+XI18$gNIV_fHxaOcTyVn*9fNKEe`fTnBeh2kR)ZLJw;|M>SYDdQLbhM z(mJI1dt|Ma{q)gEBdw;-SG-S;0$zU<4O0|gIqf4+PBjx^5)IVvjDA=plaaZK_1r^Z zs>$wa<7@lK{Tq_o4ESxTj#vYf?h23CvK=vZ&iUFK`9AJQ$>20y0fdxFh$qOG<_q(4 z_jyvjm)IsMc`(R%l)&yy2`>V%)9(ncWIUv92esg5h-J z?`dhqZoS;gkgsL2!Mym+CYKH1PF5L>{0`*nc3(#ky=mBflfM7S%YmjqtjlY8U@~z{ ziH!*M#OcQG7YQ+VT@QrSnQ2>B3+}9x+dOkq|gR=cC@s!3AmivXT z2A{dTC-wQ*$kD~ZGEwZe_h`4ulGe=8h=C|>`PY-6b)v7 zWxb+#XdL*1Z#G|k$pm!q$y;9mI!(>vewNj9a^1t)ykiiriu7lS?i6cha_)z?{Yp!i z^Eb<|;XEDY&igP@Q{>cQrxcp@g3sCiz%NKnCL>L7(uv>Qz?got<)(%;U@NUxU40?u z_$EJEj_bWbnM0|G#ZH{>o8sV?KAP;WKEG`5Y^;k&Py1rHfRQK}3!D(}ZOVJJqj{26 znY%wZSgkn85&MKvy=jUo{=D>6erH3R;#;<4swNl-0e4flf8H_}9F>zr$ZA#ADsV)1 z>LVlV#y^jjvU~BGY;V~~k=^f#aD%45e7t#@DtDK%*85o~R3)T{I|ZTHmW?^?ilY8x zx#M3E__=@GgXdd)^@JbZ-HhRbAjsjp?!vF#NI&9ovR6H56G*bS(vDkRB`M)3Y{HdlH(OL&`fE ze)3AGF1^Jw7C*(wx$2S$2mGV^EaxL^^}fkbTfT25?Z$-#|D}KilWJ~PPvP*$xD3w*mesx2}?EUyF zfa!ioVz2}C^DBTrTm1^iIiS1(mX)4d0X;=!AM@Hp0~`&dNs)TNYN#t9Fb8Z!xQLcl zL*0_+K*JifuYgGGgDZfgv^h4%j-;1AQNEdAn;^IPH0BvoYKYR49<*w1^wLzE58ac{ zJDp!|Z5ee++tz%br-pcL4k_ybg zs3ThUI@abjcwhl^S!0{|;NOVUH@QsR3sI)LFzs$u$m)OfQ>Eddq2zBW#{t#*wjXA9 zZ_6Wlq-Wu$t#{tLz%6s=kPD}~r|f<;-zH8?(;+Rsy;SbnueIe+al@kce@6FvO1kCd z$YZYAX^)ZpI5{x((8|ogKV;X2X(NZVEtJJ^a-{_!#zzz;rxdKj^8RdcWXrOWxh82j zu8GEyJTP`uYbfU=#QW!2&SRP}&Voo!-RFU$)O=MRS6Rg<^(`(l5Aw?=v?HIgA;-0v z>Qyye&E8j6GCne(z)QjSc+hLWfkjf+#nR85{D|4%KbPbankqZx3V<%~TmkK2r&mCd zp+Y1a=hxjS*D_8-W}HxCflWqWsUJQA4<75y7kCh+y7`8nc5Xbjw5_8jH~p1ty;Dd@qONcZ@0$*qLW2Q;fu z3CgR`1^swGh1v+TEfYfC^nVgT-Tz`{`qsa*q1$4+S57+_t!q-h+g|V!oCR9F_?gO$ zT^gO%cweIfG)#iT0@-O!PF`O`7XzaVCM5XYX}YE;FKE1BtZS^kL`!~YARg!Jn#RKV zYw)dO*ndjv|75hvB;j|bvWXEi>0j{u8j^M!xGP11ba{Vf8fZu#*xL-(}1T_HEUm3*qC;a1{z=3tzrwxv*fdn0lvB_0U6hp{2!JZn@U&l zPcfW4e&UAv;LU;Y8`&q0v_8F?5Vf;CLzhjhFs z(Ba0D4K2o=>02P@SD|z}d{VI?Mk})0^xgOCBkGt=bY@tem3>rD2)Ply3hijv6BtPk zwn{b`6secA<5ktRCQ+!9FIw57UFKIHLFi`f$rJ}vn2Tgf+xJ>OAabqih8%4!G%>}A z4m)+BZv|Q~;2%+@lg15w0|I*8seL8bMfBuOgA3=ST zvkO`=Y{7R2OJi4nBc0Xn+#9q;)kz*1q4qDll1|d-&03ut5lXbP3y4zA!IBvX5#N%kvvZRK!NrI@) zb|n^(Mri&z(MRS*nz>>%Au#|yJPa23j33vU^t5Qt`xU?tqQ(-pY(HJ)xORuWW^!t5M>EBTK$D|qX zxF3||*d*)^N4GWODqzE#5|iF9kUQmf-bfmZdy*_$Nwb!gh7KIN;5x9Z>A3=)bzA|l zg-_kna*!ww6j2)Z>(lU<&lSL$a0NV1g&_<&3OG+sGQ+j&t^log^mg6FZS?jP;QY-T z^Mn=YgNQIgMj2OI1##^n%+wEm&dH^9-=*l)<)NEj2M-PG40e@Der@}v<&VU5LmNEK zLeehsFAKNiu*(Jt0%5Q?7B`u7o{XC-N&2rlluHe7N#RQiKDVqPBu^Bx$T0hG;M09U zOGuZEbNLKK3t#Q5sqcwkK+ow^&ad@xO?ED0@)a=JzJ3Yc#ZjYQX~IQQ^O2s#4S;MF zT>)JN&^P^$IHMXz(tL9pPkV^Ra#m#3 zDvr&mbS=(C|BGp(Ul5!e4qrCEcdT$+Qk7aZaf{=)Ecwx_s=zI-S8HiMr>9!TcNz8J zB$ZfljTzpNEcs3=%|eLGPI-=2NqFB%+z0$R3OZ{8A^wlzqS6LT$%VOTv(5T1zP-EW zlK1-E9p^^blU$_c>+voIEX&SWKq;+vm}#K-{D(9@=E|7h)Tf%iPzco}l%OOQ*x$v)GNU!QXd=E6M|+)3?W*^ZP zt3To**ZYgl&)&r{l{D;o!mxZ{n8@&zrpl1pIXz+;ZtmwVQ+H^mQ(7MpsD6PD;=WFQ zTYfaFrqddVZFcY+rS@gWH3LdvdAAxtPbzC-Y$hHHp8Y07!Rgin@w=rkW2eUCRPvGG zBk1;~s-_F^?1#;Fi+D1wfO%II(rQQ1b!wc~g{CfsBJ)m^T|ORy{u+!phHY$1NuFxU z`lApPDxK?s+Y4i86kFNTUwr_YE#eS|%LMVtuo`{iuHXU&k%jN=(|E$`QRXQx_}Vb) znJGK(yoe|;PhPwyfcG;F0cN3-bPx@>Tcs>rXskfz5&dt~2$L$4MpEp~)So*P z{G9_V7>%iJ6fqnxZVfM&`_xJxZol#|$i8UKcHo$-+`hA-!@pD~thr|P(%A0s!w(Ty zJ$2)t2X)K-uZ4v1OJ!X6k)5yMaO9SZgbiT=;Y zlY5?RDj3r(kqJY}0+68yl8%*{sPmkTChwkycf~UqA%-ro0$SrH&x-QcfO1ix_DO)j-Bm}Zg2(gmnUI=P6_1eL~li0C)@Nx6RrFO?mXmmFzQTr0p4?4_>mR3UajiADh#gO36)B_v&9gQZt z*j?K32R(Hx7;>Ez{$f#NQ?GX9GAIWvyJyjbU~XZ*T!A4U#CV+HI>YY&={5|LtWA={ z7;`#LCJ@zdRAjYWfW3Wqr(NpD6_EUr6^R2w9<-bdJ)Blx7+GQFb`en1jpz_&tT7Sh zAfkH=3U|_ac<)DK;$rgUYAnKh68)`E`xe4IFMrOgpC|U_K6`vI$MEt!a~?+9?tR!q zkptUGO$p0aG;dvfc-L(H58$zHn3XMgq*;;u^6MBK$nD zR!ZuPHQ`+^JN_uP;!Rsuo-^UzD?rQ*s|;(>u}V9t1zx$yATYGs%%L1Fn2@_iwF{k0 z5+78;j@e`$-lubSo8D;=IwaPv*!mcIG!zCV0s&tt9T|d~z{l7>1ww!47Lh0^R`7IR z4g;Fj6zS1*D)Y3~&LhBf-(5fsX{d73C*GY|^n;vPRVFp)|iu4J>kh zoWAA%HLp!E-#Otu>9VXM+i~mWbBk$s+R{Qb;&F$>TT+Mo+Vi=-_tS!wN-QliAH8MYksK54a=2(!up_vW&J%=HO69Qdi<7mBGXe4ojJM0+aM4p}!9$2ef*>xrU_)OJ%(>CJ!4 zh|jWi_PHJ*?@LOi+zDZeqV;aW3Nmx!&BaWu)4}gy)%|||Q-3o#${OC4y7iPA&XTfH z=Vqsu@zs1gO@+$kVwzhm6FW#*Sk-$+WP7LTACVClA+g>-c_UyiLWB@73kIR^gGQ~q zR12x{W@DaAcVY(l*M>7%ZcLCl?bk4Klk~m?s*=u&ZZcyZPou$IZH_ z++Xgdyu_HR7+s2w-)JtagKxYG5YzCpvg1tj9)#brS6GYnK(W8Eyu@^c!kMA%jSSz! zif(D<1cbIMy^=9f2$7LbgiV2~@*GT!b?K+wuZkyU?%W|g^6aU zInE4hNd^{acNs2pc7}wtky>Bm$S=;!!5n_t@2p;%w6*MrDiI!tqAG2hOn{N zIwhaiBGM7e{f!&RRIIm89KOM3)I&F4`=#s?beRf_kG2@|uYhaBtngST*b(tKn0NpQ zE~OVx50P;D4cj1yGuI|ZFMPWK-Zy^$3H}X3JcPNMCD#A>H3mai9PfdB{&X(C0$P2+ z(EV@JR-k{oji$EzA3H{|Ca($gC&uM3|I4KiBFt)%qfp@!+ES!9PHP^$ew9qH~0UKqwC1=bC+!)VSgGTEy69BRL@Fa{`!YOy6iZkktTLU~aOZh^>y*T@33$87q|aG9 zzVD~*ap2px-W+x0%;zaVoq*a^%uUEx!WNnBjsyt$P1!22SZC`zHc_l+xYcS6ZGKLr zKU#j|)-={y>(+ejjYxdI$^kDXR$FR`tk%$+cdW5W(x($a$EtW*lAxS(h#H}nub1~Y zn`+;TLnJ@t@Yjfb!MdRvxcm?h^#qnYVC~3yP;ez$(6~}yB>klzsm%a6`?R2C^y!$8 zkIw@n<1(`#%G?AAd*Bk;&6xoekN53Ht<>i#F<{4I8_)qn0N)UF`Mvwo*~jS4aL;&+ zoLVNE+gCugfe=b4t{9w3n#C&sGYLdqm}nFJxrCmxiS>+hw&&Z{kr5aL{%d?zv;?R_ zgbTmW&%iAb$pS-88l9BVo?QXBXr(=lpGU!bV8FQ?V$OONZVKwB4-8RgiL^MiJi@L8 zHGB06=>GDr1(eTylAWXy)B_Sxc8+=7-V4lEK7_TOUh^yP4}L#g7!iU;0^wHx+eylP zusrn!=pR*44-KXjZY5)4Wk0$CwB_CvE*=hCmW}0sx_badtBNi#6p05~LhV1O8-^}F zG2cWh{!KkAylKB>i`WA+OJIf|LHDvK5)Equ9j7Pir}8YZhcKiit@)AZU&yXmU-<{? zOd#vvqFer1^r|GE?^|W$StoO&#f=V9(SG*di>vD%OSw7u6wZSAf%UOAZ{i#xf>9;`p&q)AF*m zQF{5sF6Xph6`u9P0Y`aFiXTi=n#YenB}4s%UVm;_ClN`tLe_=7V{l#CE@fa)ypINi zxP(^{Ia35M2&-djbFdv_B|4(PxbKhNTu=LuN>F;z9?^M8ZUBSDYa2h0oBf(3c^e$@ zt2Z*(N$-r0XF)*Y87kZsGPPQ)YFzLfWGkQ4P=r~#1Z4XerJV~ zq>TSN%z1OOp{Ku?$k{U-tgV)?^tCA@Rms@0O zR~;iAS*|MTnNLD~zB7CT2R%x|B87M>!;#~j9X)t(n_(xFL%eHYa8ALr;=}7?8y`VMOz;OWa8?DK7h27J!uzQo}6C? zLr`RF{`&SaSg%M6++q=>g~Kcc{Y~tFq6H_J+(J5K7-fuz`UKw@o?5+AF@;hdZ&00@ zdL=4I1*$;??d|@E?fCk&*aGNFH0qS5R)!_L44J-f@G+3z(=NvF);caBCF$#r#+kCJXGZ+k)|wY; z-RHjJj{=QW3R0;^*GE1CN$W)()`gE^;L+bGuj`}!1*LpCHro^)a$~FtsvwzgU^5|J zfaPO~$-Sn0gUhTo1JmYtb`zgk8$&;@0@C!@K!!iyI!1il9e3 z9CT8cXvFBE3$qknGan(WxGX5CmZdAZ_H{xYWw&pTOEjhg!k!G`5#i|wQx##5><6u4 zO6=75e?A$epE}T05_e&Hguzj&>e;U!CKe`Z^dTslj)|C^3B-^rdkNiq$KnwMX71Qt zw7?%Mg85A_iMOu%gHmDr0UAu`bjvB| zyiqTlWz&J?`Y!Yjngg}h%ki*Yb|LLEOi=n5!FGA9KQz%#%YJPzWjj1aj;y%#bc~QM zDoG}-%p3NLYi8DsyAhA~4%I*fZ;r9kPej-g^+kB9?h4a+p{E!g&hFNmS+F7tXW!EN z^5gn43Q6a%w=?7zt#Xy}-JXd*UyNlmi0-P?hEJ=(_qsFE3cl4gk8`P|G^Qn&me+hw zgP<5c`y5-HEIcTP3 z7Js351(eIe5G{wOB(V+v+*jF!P*hNG7ETL-^gvZDIzNl%dEExH7m-`EK!e7grmyx&nu!BvRTax)9N_m| z&Ak#v_&%HFbHyk$S06(opLRFjnlgPjc62ftXWhx2jP}eNN*g+a28^><{A9uL7BeT$ z?4TPtx%;=UWTXtFXC7S3hNW0rG1Rs!de-pW7vnkPlLw(t{U-Ei_Lym4Ud)L9*B#~STlt0B=6(I}VN{qR$1rZc_d+fvf>Zjo*oqx#o!!Xj4y#S7Tq zLM%22?>;!gQn>=c0>FI;wt19y`Q{4P{Ecn~XCkQi`O+MeV5?@8S;_}JawMjClj-$UZ&K+1y*xHMUaqlsi8q~Yg#XopxeG;|6 zQa$EoD9vfA>HqzX8gCf-k-y~n%jEBrBiM{g41>)q+~)rK<_?DTo-pm z(z-4C>DeB8O>D}MhhN+h2rWc6TZ6{yK;^QbQ6-4D2$|WsNG-mdo073}vr5dHO+QB< zC4zvn4-h`{cWAk{CwBv}4~r-E$+g_hma44&R_WtezaPz9UG+s>HL~^tQIFS|r;=Ir ztC74w;TfLDVxtw3%>0@fc2+mZdf695Z#M^643*Cv-r7h@mq=!IupZ&XfoEQ%poew^ zjQle9AlBWpM8Gx-8b|mVk=n~ms%ND_M_M#aZ}$bb(;a`v`lk&V_vuh&=K>^(pIbWQ zF(3TiFZK;(;LD;OYApC{Qq&foQW5dULPL&xL_Vk_iDDKRb=XCrwyepFGp+XI>)o-f z^-WD5iZ6IA4jkUS4BA=#OUj4|hn;d{y=j(KJuG5r{FAZ-(YEO8H5Qw9-^(Mg6m*q# zTi>33IWIA|0z_DoP-K<+q0%Z;Mq|u3z)UCrCWM%=sUWMCHEaH2A;J|&otc%}C*C`T zTjT9!_eyPbDL!}l4`{CE6Qa!Pr-xZ9H_Db^QKCP$oAD3}Ic1t9S<*Ha{>9v|g`gsW zBD@}cL#6OT%<2cCVa-XGH3tH_3iR8*ci!m#@+5vR&oE^DC?F%nz?QdnmAn#PWA@&Q zK4!jkZNk9S*7Ky8s;y5*gB5w+N8HsSKZlmKK3#Aga71%OHdFR{#@qH{X*9A(pN0I8 zvd}b78PZ>o4_;h#kCacEH8q3pk}-EneQR{_x~+Fd+`_u-)i*5n`|)97Z{|m7@+ z_~C3qUy(haTbsButILrjDy7pqb1NmCZRs3My<(CX(};f(E)1I(9PVZ`-c|D_k4`Z%ljb`4WV@X9O^ZAi!mSv42!pvBS*I3;1Lxo|2dc>D_>=}}u zk8M02Os@9x-W=4X-WLAlpW3r3ugXl*#r|_zc!a&&tpn3DJ|!F0T`nj`xXh7D4o!OJ zmf9O*y7wD58_ItxO+j^ICt`0)xs0h`>-bU=OC zi{oM_@==YRs~w!B@VAP+1>P0#)lIIoS(jUwh*hZn-s<;?M0J)8$oNAe(SYeg@x-10 zIAI43Ss;rF(zIyK#l*4R?QkSWu9R!$wOQliq?a5vpN+Fo{yiP_HMh~=`BuwU7=i^f z87&;}PhC>k?C^rRsF8>8dj2k&;Xnc1SJ=u-SV?pp*vDW%S8rLfXoFThHNFD8Nzqc~ zf)9lXVbg=bOxoS@6br--nhLikOMIW1+EsRN=8vR&ddDD&rF8}H50<f(R7 z3gjx&GQOUppJiG*4A;7sRd;)b#Z;#m=W|~Mw&d;JEDv_n#qy3f0=yu35y)Sx#ar(!))QSkv$vblI{KK-n^es~l;Zc5JZGW?_@=`0Gi_ydYeIy^UIjX(+EK0Eqc z0SEo8A2ms0!{3##2#WVL?4b=P-1pa^wf0`-Oz-4=%fSmMa-L~I7W!+0fyHe#Cz>oU zd_^wJIs2v?reTF`io!tPcTRQdWWL@Ze1rM=$Asi*tOLD6AYKwQg^LAq`hii`^a6KH zLmWBbuVp#Dw0DSC%VwMTdLpAlhkYnz1a*XkKw~vxA@WOL*yzn{&51F#mfv3sQqUhcrzc=U@qBsSwB^L%@-hwd6hYT*xMfbLZPTb>81@Yp^g(iI zGdp3u7QfJ!V2FIZPl$i};t#5aI6s&qkSzkY+Fr5oOIL8O7gFuc9Zw zcD(odkM|iK0xyGLH@q!5-ynw$JJb-m9{7tF5aw2$;~S zf_NC@Wsw)1J$f7=!j>%smoELZS9^UR(lmW}0Y;<=qj`6(6h(bjgLtxqja_d)xh_D8BBzuTb6=S{z$ z2am4+(`$AW;rqqGF#An(ecus!^X!thuBjP%NDHPlT0CKhdg47eJwx?$*?HYRMTS-_ z8|4V6$t-X=sYIzxuGZ4P3ogV(hY`Hi)+Ra?!gxEJSS`5ybZm)14PeZG3~lCF)XooF z97bS?re{5HQ?}%~_biIb@+NPoKBH0(7Rg%|>Z`xgJ;+7L}?7|Zj5KCbjm{gxz{{An@p?I=f=_D=J`0@#_*M`Fc?h%DO93!V7YU)L2SU$eD|K{etEv4q6xH6y=bhl7rmIPEMC*ig1c^rgw8SqtdK_z^3Vh2kT+}QlyRa!G>JXbzDG$+ zGq10O<3vXD^3Lz2vR8^6kT%=`>LIm{*SiGx&8-UcZdN3COaOpitb=D%xM@$Plbxk3 zaK^{mRVV#8LZWECJsTne?6vx-lSE>G)dHr(>J=Cse~7-Foo@?M%Q90_=D-V6$@ILz z9La6D4(_eit;d)iOj4L~=bL+d4o)z5gLa(xgyp?zH^YhQewz8Zdr`OHgvD$Fc_Opd*X;Q?OHXzOd+8tA01@=mi%4yiCU{PyZxb&$^Q==w%A?}Ld65h& z1}u`zf%U|nX*({xP6DsrMRzf31n?qRm}Ta4gqcf%KFfC125<7R+ho6MVd;80uxek! zTZxpmb$sUFMxkG$ee2tOMV$Eyp9Y=+I#vM#glgvHHxGUb&WR7B0)_%Z0o1GAtp{d; z%jDfbduZIu%r-RhGdlODJTmzFy*8HxY(dF)eYjWgH=iwXllIlVx3W~q?01d`vIzx` zBGoN=%0q4&j91Ylt>m95d@7`m!xs>jijs(rY+oH%iy|HQ!2IjUUN(IX4GkDdm+ON8 za{a0TcAz^U46C<=)Gy0}!uYbF)?B+#)3aSG=H<`twnT2Oz5{EXUgkL`G$o1b<1qLw za89Ss(B^NCVJXyQHc7~2yT%DCR{WLkd!9z&;&W)wlM~KyweIR9B*!MhFxcuX-blgO+3)p zV35xM?w2Kk!7aVv`q9&N6E+CD%ju3e4-(CMRprYhopEj@{&oE{cE!P1S|*bG+S6(j zW)Nq~EJcWRIUJ?U8FQlUyC>sB!HFOBa|DkwW3yS7g)bQ~9S*v#D{@I*E64Df!Zx=L z>K>9G3<=tvr&2thbNQ^zc?le8y4?=#Rs0&yh3)sf8VZzSSF| z0C1O2x*sNX4jB)hLaMdCIgL7^D?aAiI)1(CVBgSCui)G8s)l4nag~jTBrHe5a!siq z|73({6D{Wk9_T&%N03dpNVE#pw7|g>2+BFx(WHjtZ)KQdoiV9_PC6|jsjlB;%6qIS zmD#+5=hnEaytCIbT+|B1&!Q3eoQn4Kj^RAKAKkx3W<3|)O`;l9`eFfTdt44?K-)CW zuYhUjA?l12C(s>+G;U_k7}2TvHbKv!nIK=roZ5A_($$Z}sBgpWtJv`1#kA#Rc#*^9 z12A)VeR$gaMX$)?IYu4hBGD4;z3CB{%hErGUE_Oc5$F(r3N!`n-*vlfXnD13d{@2$ zy7^iZbU`eX=%Rng(A2fqVmHA@P)JkoETiB$F?n`*lQx?koMxqKLjPC|oa@02|2en} zO)+#mBP-|p926++?6Ti%(-m!jNoWejqKg{%TMNc0Ob$F6bFSfud4)09_r5-Tx9s4U z+ue|nW)>bT|KFi*AvYJ8Q|8~FR6s98_-VNzLpDtIVcw%~?ZU(lM-rH=KaZg|MZDu92Sk<4r0>(a$uTL_mc_;Qn zB=tca*5H=U-saLGF>r&I)k(-dX{-EUinM4`V4K~pba5f0{c7qYSl;+;ty}KB@;PQN zZmKqq_Fgmn@Y6O>3c{}S%iuY@p+kxWMk@XSB^ByWGQ(AW#t>1PDz=dCMBn(KuGW09 z>+R`g$d*hE>{=M8K_80Y(_eGZnk(J4a&6(LR(bJJ2oO^xnrT>xPK; z8i)J6T;4KMs^EO%`yx#6SK)q5#TxIFK8$T1a-aRI&8!E=g6x1bGNrZ6*k&m>rxZhW z-E3Lhfp3}U*+L+{L#kw~N5vj*U5$M*o;j1-h}$g|nj>aXUZ?@I4P8hXjSVEAcUFYfw9ouDs1xx3j^5-n??S#X_s zc;%$G3MPd6p=kE-Jk1;=x*2riVJMX#&gmSAV#@wXcx{9PkKeoOpjj8cnDEB^I#bx+n>pzU+?N#PL2yWd z-+{{~=B;pwJpR!`q*uxOD~iCHBgrfPMJffZ-22EWJO%o|FmAq8sGGzh7%L zPq@7=!&(#G_ms&?7~9ZY3RP%z<|fVDt9MPHng5lIWxJU&ha&u_OuxaCf&L2^!ob zc<|uv?(TLc`~3Ei`|f>j|8c(e?&JH0nYE_7x~f)Jby@e!i=4|i6B5_Pmp>OaMCZz! zb@!z5ZD)6&>0C0#0rQt_*U&HK%C3j%RNErgwETw=67efc)*)f~d}FH?2Dl4A@zjZl zJ^}Lpum{`THD-N_f%RT29sQz@*uw?~zlG9j*vw}Fe{Y;xQ>wI|lJ7$`FXe48g;Y7< zO5fN6c1)XVrYohXasy_bGl!Ocwqbp&iTbkAOCjE}^g=@uB;e2yelfe3;*!5Cy|s$kGp*wK4kjHsub8T3 z>hCFO^_dKUo7k2U&GBx)BaC7gT%9b3)ZFYfs=5Ddn zWO*(3T-IScI#Fet@W!p$_gzQtN8Sj2GBjL#NPGi=S>aL^8YNOc^UoHgo=iO&aqM3a z!H?>Sd>((f4D?<{UOl+yp(uPv602>PAtZJnX`0?mrC!G`;||A!AaJBsc7LPVB4X*~ zf4k1ndC9(AM*i{Y@-*epHNjK)4)%KahwM_hTpR?K;=w_~hhz|?e;oO1Mc!Vjk_@6Z zxWA^b;q~vGw3n9`(LKpM!{~%^!>8AUfQMDQ^PeCW`aj?xykQUWm<2r0CV|$&$vsa? z{KEv$VyW^c1@ff)3lwwP2eB&tBILC9MQDC2l0ar|i(SJ{t{+DC!W`tDdl_=33R6)L zH~$=DpFQt7d@cVYb)s>vSXzV_K7tQ2Zb@a%AXf_q6*k z`+CgP9~deLEf*(v2lod9Pyl}~S-&d+BzY1#?_h61pf&e?RPY736m$RFG7AJ5?iNIE zoGM z90Vb~Dj(Uf4JqJ8Uy9;l;uV5)Lh%tw8e}!(f^rl2@|!6*JbGFn4*@iN{$v=OL8-4d zl54){EzOv*zLM!aosTU)UNiS>%|*=;^W%1UgYTROd9%{Goe0Yip{V935cDvWBn6h!eIFWk)8 z9a|5qFLj-nY3GNG50z)%4CSc75o|NR3RGcn2K%{>gH7e)_Xr~U-=F%EI`T(plUyv2 zFouMbXypKhiR_;_l86IG)<<3!c)hSExCXq&T}N|qs6Y}3GKBt!;OUzW64RT%KZq0G z2E4~Q(|*`+Mr`t1YR{ZBKna++16apL2ya_7m_Iporx7Ot&Y;W;)~y>kpLDF>z-Fh8 zjK_u#naRDaSfyH6ydbcbD2VO1goMX!D=)LxC|YJ1w=a;AHh)!$_hxxHu+1|X1HgiT zi9*K27Tn{aAC}YEAusuK?8_7_H^Z(*5JilOWKld{2KNBFFEP96PuU+K_t75>|C;Z9 zG@yJ!mFu53!Dgh~w|iYBk|4zMcpNF>_=c;+T8H)ylreP!$=?Ci9p~22Z;*L!q;d6Y zpy^yh1j;c!L|(&oS@X(s!yS8D#%?yd3ah~W`XO|Y zGdmyg!cb!4B3-H_P;C8Yix0ktuE{}_snhQ3?rQyWumNjS?4G-EnRUSO^`p+q#i7O_ z$XVeA`nKncgbYRB;%s*qKlE-6hUQKS&|StiL|BBk@Z2X7%(3>Oe4=tri09`T^y@H> zO<}f|zuksvGj8tlTgP6ai3OVgF;e`)KqaEO&D8zHW z;y%pIleu?9%B#_v@9fGbVlZ9cquP8P0m54+SOrbp4e&~-tZm+YOsOJ+DKKN&ec4Te z=D+f@c?Y}WsPJCW4%pBIX{lmMPo1l`0EEL@?J>U+vAYBo?T&hshOf!k;osxnG)WwJ z?C;9gt!5gpOIP2)*8eC0H-j(>ek8iBv@cm&mxM{k;p}+!m=;EjK0qNXRpt~Cd(UtS z2$#~q;i0w~43M7yXK*hIs_v*MdstRWIf?Dpz73aQ!CKv|xnj}G=jP|hR_){&kHLrE zMkG_ZbSwIdQAt)GYKq0e96z|5GYo_CliZS+pt*{v_h}Ghj^G|)SsQQqsYt0zZgZLn zA>zR_wbwxGnrq_{gKyJoJ92$xj1%kDI;DD0F0E>^V9&!l;$#8JKKp3jN_}A@rb%>i z;AFgu&d%Ps40KYj?1cBs<(it;ct|K8qUfWIoU~CIq{__4qV^5Gim!0b&c@u?CQG|i zeV|ggSW9JRLU<^-n*6e4GtS4OaWp`ImvKR|9yEQS=F;)&xk%%ShCk#*R|E!VMTR|Q zUaOkXu54#&5lSTJ@-rbuOsXYPOvg7VyYT@WxEr89c$Im2=wmI#MLXQ4M3Ukz-D`g7 zzDB|>6Ka2QubLuYQp;q%SYF^^9Cz&}vfR2Afth@{D8|7x zy>d^qBVrX#0xoAcj;vGCz{d|>Hm?^~yfbg}xYX{%?zbc)if#`o1wpcxFOrSk_dAo{ zt!#d3u?+NG7Ytnwt3(S+HAI)k=6O%gz&B1gv?EW!OV+mixAZ^O-@)}QU%)Sg^S773 zt~!uL+4#=;3E|&nAHtl0?C)SF3@W1dO8rP*zjq5E5RzWxgbb#~1YehJKe#Bx1>SQ6 zEV0@c0A{KL8xl-YN@lkf#u0R}Ljob*iYSqX)w5Bq@qa%QlpVrv>t+GNpD@dRNT^di zo9U<+&|)m1GDo3M^rC_S<}eg>#}n3f>qxG)@RUs#apBUR(Z$);uo)Dpcc)H;I|Tc71HRSYCjYXYmHu*I5)Xv4Vn`99=w zol3-%TW0AJy&!-nH}D`j<+SG?pLqBIamq9iYG_TyjdR6wq1Z)mTy+r_bbX4PO>bUypaz9hVz5OXF#H-@%p1Y` z4Ucj9o@J%Z6hFf8YvwV4Gc9z&sSCTis%c{8`6$iMkP>78h`9PN|Mr@^1wP)?fI>i^ zDkxA!0yGT-FAvRwLFI(@AOw#D>uvlRc)Omj|Cmh0&k{v=Zz3MP0n^wZC4g117#chf zQ+C%-`=|flTU628z--)0t2QV&unaOqrukkK--0{>?)N~$$xzL7|Cv*u=s)wHxSw~8f^(zS|xc_+Ew_XR32XI0755J)1*I>%5iMgG@2pocGMzIHvKh! z=6eO<$BI4SWg0Kq@0JGg5Iz`nCcgZ-w@!+{=`-Z!_XxnE>Tn1!JzCtG8hi%>|3mRS z|3&AU52y@8ESE@MRHW9&(P+B3F@$i)*$Iy+?J8j!C>)Ih1;n`(e1g;emoB9|014yO zc@z;+{qh2P+GSUiu4H|4hpN*%7+MY1!Y;?AZ&3i9GX&xM;==WddKPCO8_Z1yp+0B- z=hF@6JGjiXOHbcN-I1Xv7G&mDQ~r-D_vQYAEmJ@~#Q^Kl2Z>{?8H!Fgxg|4{%9Tz9 zvCa0R6uWe}K(o{CO$nOyhoG_TX{hsH_VhFJjAV-eXk3@aD`Y^1=})N7Y0kN#XGhL9 zH?5TX$Q6HTvgLdJW7`RMZcV<{LlAnLUVT%W)Ur4IcWjz&9GnA3sTZ5D7dk`a?Khz% z;Om3oMP(~3g#wF*HQZ2o-bH1*Ajpul=Y4x&dQesDWkSkrWy}B-xF5e^w23pBD?Vzj zU`mh&AhrvlokdAZtJg$_qvQKIozQ@SX+Lg6=Vd^XwM(Rt`rFAyD{(ELYt!Js@CFuS zhjo$0J!ocPy@J~bp8u-Mq`q@H!IYqWaLW%{VT%!T2jo$>#L197xa9W~i56KOz|xES zEClV`pDyK_n??8Gx`QVpdc$~&03laS^n61NGVJ^c-obv;4!*s@Eqsl$BS1u+-*?*WMZV%DEd${>XAMfqK`ke{#UEdGs%SOFp{BO_}KuA3{+rimZ*f}o-N znIr$jY0$P+t^YLF{@&vB-|-IdzNqwHj%gm~T>D@Q1qSx#MGZQ%OM;o31t7*H#=!w# zV`FDy7Z&CaXXoIMU||F0RB%>LPN|qQs;OOiX{Bh|9zzrY1(L zBqyz^Mht?%#3ZgjN=$0y>gveD#N^@O!T9H-W^+bUp#7hQE=)?!Ku2?DS1&mbFa}Tu zMl)A4QqVB}2K~RF1G;NwZR#oj2g_$`?j>Lfv~#m}aN%S6a{;<%?Cfm(=L0OCi>osT zX#rt-pqqm$AJe}sK~0$cZu1uaXQ0Rbs`tOf0KxeK7}Q9?*xvl_QT_wE6!6d8e~0}a z%{7ee+|1Ry9L@h7IOw~-2ZjZGwsvqew={PaVCG}``y&YJ|AgKD1nYkX$JyN2PJn@n zlZBC$`#=40@iG1N&Hn_GkLhp1{^sI;4D-LHPyz@v`#*s~78Z{GE|MgTLCpOB{+R(- zIT_jiyJ!-1HaD|&B^EVy{y*Yr0hqb}+ei}!Ns6HmN!18zf_q3+<#TmDDsOeVW3kJ|GaQOYTCrj+RjYl-?Xn3NEZT~y%_)M`2P#N z{I`1hTlG4Ceh>ge3xlh(n}aO_3o|npGdl~XA&!6G)l;*T0jFu^&)THbLjG zN`+W7$&xanghz!v@8`9>-@ZRz`@7$=Ygd&-J&ssDKzZN2zjnP(7+RL+4Ma_D`>_}r zX5j6W=V>(crcF>D-}Wlb&u{P8vgq=Wk6`tNg=t@z)HiqKBA+MC_Btk4RE7rpo4;E7npB2y7+I{cdrnAQG1GJ)(7QxIX5G0Qe=XZ8lX|MxE(0g|nEPfcg zR(yJWWPg7=rF&&1jod!j15Q7BUY_o^ktoW zl2_rL=qP?w7xGycvZCgdZON(P@$Q!F)%}=!KVG9@f&tUbo#|U&N#Xr;JyTujbXN+59^vLioMW5V2?=(etT^aHEFUv2YWQF(3yVhidYZBV^&bqqZ zcKPe-y|!k@zI%LYB)YewFx9@STaxEHD~VbK#aZmmV##MF1yHfv$RnB~7~RpN={|A~ ztw89L64grn3j3OE6&hg{l+jg9ifY~BzTNEJ=a7u@*u1d%9Zbn=ej)7YM8>(N4w0ZE zOO0=t(Vf$}yk$1HSN?uvhJ^~_Yo?LITX05x5PpElVbq%L!{D9%vlj({17oyz5l>_^ zQ%^?fsMTlGny=H*)?XTk#YjkL=(uYz`qfa!*%QO*BKj{4PJU6gY!Fx%C!M&P-G3uI z!)hb18>`;h1M0}An55ac6ZK;oiXJzQ>r@Un}*o`|&M95_1^SN~so%t{L)F-NB zT@xu^BOa#B`yfv){i3Ic$DwfujhgXBcIPvn+dQ42|9$DmPf!1?2{_u-q&92Z>L5UM zkIc%tT7ImUw8?^FxX;?@Ct&EleK@>w!@nDdSEJNU($+4g5j9wxQQ(WSE9>Okw)B?u zDF$ab-Y!5#{@vbxr~RsMnjazK&hCe%;fDw()c%LvNT(z4{ni@}V{dP%GX&}&uB!w_ zPfi_JY5x2Z6HIbk^!-vJhsC#{6V!>qgo=M4>=Z!q~Jn3OZ|z z^Q6n1MF?KC&Jp=Vs;ZRn924!pNS1wLl(czm&xXasMAT7o67d-JxTQHMDVO9UN;xT< ziJ_6zC6OnL5`)49Cb2z^_I3*?e@ziIjg58zaRb4vuD! zQtfqEhZ|+tf-Okj(>l}sd`LvWWnP9t7cUk$1_cy9GLyL@2aCOlaOlmLl;FlnCn;{& z=oeMVXZ!xsPM5w~*@B(PqHG71PJR?NqJ`Mg=M=I++JXGTRwf!bEXOe0k0JLR9TbZ- zk(e1_^4rKcALMN<5()7#n)Ec1Nm^UyYB>i^+oSDe!^oYXGpi_a)M7@h5*Cll=$QLb zmjZ8X?QAKzZP#wy$mb*r*KpM&LgieY?o!w|uG?J)#t$-s%e!w!XrD_ZiM8d>+`8LT zmO3Q;CW)WLj1y_2h)N<^OapBDqn25a={fe86h(2|j5V*aSBuEg5J+OIVLx|A1rmSL z?JV~cS)yvy30S#eo0?_xq%#467glMp)GK~zNdI|Ifr@=Q*_@wX?b+>|ynu%4ks%nK zsGyXYv`1Q!Hiq|7Q|T_Vil3&i8j@_#%$qxP5Zkp<*^i$A-x`fq=r>$5n->kmhC0FM z$?6P@Ja?6?t!gyua<;#vXyJ?*YGm}3h4a`7Lh6vXsV)07^^2)(!=Ai@eZ6f(IzdOH zfy9)e2YxLcPKmElR!#gBEZy7;SO4OpiyGC5bUy3tWb8o;uv&_kX9DrgzUC#7*LcL| z4xe`cWC+8!FD^j_>$(r`D>0QMgYaIsZ&-=%U5~EbN?2r?IkGPA+ z)8+l%9nC*#&bZ+Zl7FOhDEJxh)vuCSqCH=8WCsvb>Ev>F;Q8=Badl+XGgk1$oVXog zD~CYz`7~#-M`q*QN6JjsM%0N6lI#k zQZr=SYEjc*gH~$OyYfVBCX9rEIV$Wrwh!x*&n#Czm^=+_IPF%0PHhX_oAR?>;@7w|RcYmb<;5>2?WDp+T~NHS{A4(uezx_9FxJ)okve&4hvuqlmSI37s#puZd2OR5nh-nol_BoN)peLlU$7-i2UZz_v#qrcWB=j;P z(7zB+Ig`QGPeI$dQaRzIn{QD1w9SL7w|WjqJ@HLeTv4CLn<&FIt*!Tq;Jb8FTe;#( z9wB!*6Yt|8awk>Iw=y}+;@@I<>13~^w7q1-$3dKAA6lB)YKO$~WZLfrI~Yhaj)R)W z-Lm8OhmaV3>(RVr()8ZKlu5}=zf0*_dLxU{q#7`uThPa?gA$qNP(ax|ej1;|M#Vlc zsgyQW=N?8+4-IEc4xAUCI>57-Spq&ubOtx`7?LbRYNW#Tku7Je?V#OgdcjE$X9-xz z#>uA;41UtO`mOCx^iN!j9%0g!zApDDULvkrT5(R}fbo_FE=#9Hxh|rtG?L^dK0_kZ zd1beyJ~zRKufP4Z8b?GM6|HNZw%gGYq`g~oRY;}g)(EM83JP_Ypjf+NwNF+=7(RVo zzljw8mY|WzS{gEgJwzH63y7c@?928KhmnYEF8c(I6E&J{k*E~n1%VWoK6@6_RFu*@ zjTIXx#=iw~L+Ml=Zr2LGmOKO7?=J0-;%73YT!762ZDs?_QcDrNFG>E#SV*Mpu?C&+ zWp+aRm3kiGn@%}5XMi+`B{xOhWmY#(Wx zaTu?9KUA}*5Ho4TvS4Kuj_8q3N&1otl81;&>}^AxOCUv}9LUv0xDF08;2g$+<^)t9 z&MXNz)w7t}NgS_?L>Wk=WUNDWc=(B)lgr9Exw4}duNgh5bl|gYDbR)PN>_{mILt@$ zJi4<~o`rI%YyxC(gmcPPv0GHr+VD~YSyjGq*~U%9-ckb+lbvJ@&Qkk6xDJeCX!+4( zO8^_?NPH3*uA$cnA$9z!jynoWU|WZK=`3#BHdYURB+Wv1eTjtar){z@qcFIbGYfPa z7!NWAN6i9w6_M+5q<_{F@7#ofSKEyFdH|QI(LpPY zT}W+$-k;#imM8||LhGZI{%o0QLYzhe8X4WTU5n_I-y^HhxQin>_uxXOXatp^#?YjHV3!T3<$U2?mVT&pS22S( zyi$N8^LPDNWrsZR>p9$K+svmohvYjlMST;Mu^bAzDx|)I4LpIWxnZr8+dj;ZTDMUS zHMVlPgz-`?bBEpdTilpzw-iq{Feh?Kpcw8bVUR&3jme9XmY2KO6t6~6u4e6%Y9nD> zGXaweFVD!_EkxTPhH(Yw?QtVgax;L*+0R3L0V(t>vW83^p;^eN# z!$#sL%DD*W$L>U>zo$U@31~cTc5r%$XM6_Zl7};Tx-Wl$&9n$F4Ks2+gCmSQ2&p*x zByE;wcvS@ncx^>ET`yDW*nD6wxRxY*qBy5Hi#s?tOE1K-5RfE&q5x8CUd_8kBA61f zM!)3yXG+bs?;z6T_-BrTV>tadiogA(h<1H#aOI%(7Cv~^Sk%lc&x(4>=tXD!i7$d@ zS>Ep})GbVIU&0TM?zY4QYhixr$`1Zu#Z2AhRsas^)QJ>L^H(Wbot1PwQWDs`Xq0Y> zq-HB3^Dejy4Y8Zlz6;u06z4oDpatpvq#+aZ5eP~8YqoRbt}+3 z6e+ftd{;uiS!Ix)?E5trmYq}{?M&6OND%3mNf||B<&Tac-eSSEDx`zzRr_1$FI_f6 zHXicxtA!NNtc;92x%iB)=+o})nrQui8tvy%DJNFFov@L>CUaG>oL3g{(v*?utU%i- zIv&My-1KJZC2jOMGuG9f9KYcgaux*&OC6S> zFJcui9($#7u*%j32pVNY&2?EcQjGIOF4_~g_76^tvVKj?hq)JjhYO0 zdP@9Ef^eRriY{#(t!DJ*%9LFfm6@XJo zXE*Xh&?nIH-XbP?;}k%tL)xt=0(24WJnW1PnoSXtogNT!lH$b*rh!&@DxWgs!&S>7 z7VX7UX(ESdDF=#7RaikzeA&*_n4LJthmSP=EC%sej69S<@5+6K(5{{piRu*1x>9k$ zDq6F7n0 z25t*;T6;?J4?dA^gSvSz0RA3z>ZrkGsB>w=D`MAH08<4E)~=JN{#oeOFTIAPhC`AlBiG2)o3s5VYNDLQ;#|Y%rOIN9G$253xWh$h$hT{=;jrDxWak>II3WR4 zzl_jEpK#F}3th*GJAReF9b8|x?AmXGFV#n#he9S zocqfEZa)oj?v1mGO;cB@ngY7CE9Rq~PrFj5+oatO9kJ;$-)tKJ`_s>Z&s_|u(*aC- z$D1dsz9|*LtdhR0`vD$Ld&~WHjSm*B8tD;bcb0X%n7$KxTdpm+xQ7?lcHW#_oT@(d zZQCwa`o9eSF|nq^k^gc$GgmQ9>y&%6w-uiiu*%H*ISI*iiyR$ofXbMCz@=J z5jiDJ#z&(BVbF{Y@U% z6J1@6dU=TZ9&r{dN4{~dizj2#>a&dyol9?yjm(&ZOFtR~vjn*Heh>x#Om@@En*H@C z=|-woGj+3%^Q$()Xj0SZO3_WlHdIb%=0sSbe10mJw$fk|c(nrlpd*)D>NG1YC!8GwGp2HGv$$34 zJ7g_w3)6N3{2ot$LnpS0vv^Ql>mCHj< zY&e83_7Y5AP7Kpzs=dTd8P5C#)_b*`Me4!?aUe{0vwkQ-f3&`UHT4mH z3X=1TT?xJvc+4Edx7j0_zTIi^6YtDtx2p^c#878(Et!Mb^>pKyk-!Py_pQ!hnCAV4 ztE$2g(AB{nnhYghee|;HrA4qHGY{rtQOL}{rfXkt1CujOgcaA1w?gUD&Bmm2QfS7( zE7on0Wk}GdQhG*+!`DGJsszO9UMOHY94yk!5_zESnpN6to_~!UTpDFY`mb2)L&(VPDB%zT#* zYQ)C0nX1Y@9oX_E*Oqr_h7fCK(;_R&=ss~s@e<(iXT&%}#D`Ia=MV=*v|uOv8tFG1 z&J_ZeI{?8!6==L^2kJ$8W_r5a2Noe$yi}YAy3@e=3AViQX>DWAY9U4|`t&uRkqe)?C`e zQlsvzel@jSux}MuOe0Ax&l&63wWl9j#Im19veVqk$+T)|v}^&FeCIpSzzZ_;alw~M zFNb1UI6V0XU!&VGhHu{Qv&ullx|iUA_c_KZ5cp)pekx7lqtd<7xz};V+ltu@1A{G` z`x8bFjLZ=>`lmQE_CjL{gdWj?y(f z8Xwi0QmGDqUVTaDy36idb;`Eh;d*DrxBUGSg|Pq25$Q4am!m`Ord+s~6yP&E6{K~e zrhb@>#aozDOo&;Tn*Lz+xD<)V6e+Lgvz{53WT=Z7*ST!qFUKmv+Fy>be?SPV93^bN zY%^y^v`s~9jEW%)GnYZd`0a4={Ye)Ym6MwgpZ)6ZJ7 zkV|8j!;xsys|3Qx$0!vgZ1Ksa&m=?FDO-4`j&H;g?Bsa4AzzHNx_{R9_`v2=)Rfks z$S>G|{37x)LjIIi7|`M>Ci#A4{W`Lv_vzA|X}6JVAU$myFR#N6A21u2ij6 zO;P$&q>2F7;JCNUs&}zA^5gFm!tNNJ&Qfcy(p1Kyy5f<~*Ul=s_b`Ytc`~BMh5Y{B zdqr6(j-Kn5yx*-Ysp}EBgzkj~$Kpm#S9DPb-Pj5=EnkQJLAr9PSa zEQp3&Fdp}8ee6V%i~W8?y~gAR7h)}a9wUO_b=hdk=rGoM;iPp2~qBOLs& zWZU;d)-%EF_Th9b?jCo~=+Y_0QJ0!YWWV97IlqoBtcQtRMna4|hu+n_op@QFRzmXl!>0D$6k`mT_bGdRG1D1(_%n*mRU^hVI#H84CsR7flRD9JCiR%S^_aVhML)%KjAJm;N*8}Q zaYI?`HsB35bY?`ghV6YFB&sX*C(KDDz=`!b1)jf%J=gF*1I*yQw$<8u>^`dJTj6|& zakr~CEhO*(=hYDBYyJAySIpBUq*G2m4u2_H>CB!m*)Lzd>S4Xc&(1sG&p+*j^)-jNn>A$Z zmiFB3rfwaBBvxn|HDif}P3$AR#AHwmrd_?! za-&gssB>3|@4KBwF;_}7c1n;`2=gFRil`HLjPkIQO_EK&w(xE|`741m1s6vE3BUY9 zurxFW-7lf9a}O-n$S%Dr2Sm_!C@bETeByrJs|7fUb5Fs-G7Z@gnDU39R0;9dd?xDN zz_-SyHqX9pGRp#fOF%OGghQ*zy*y=nK%~1prMW_6I6q}LL8LiEq~AN87VY=}mUb43 zae9|>e1~y#=NI>?4b*lxFF!?oj&yuBun)l0a$b%?yvc(*5rq)KX!V0Q^%6GXcc@N) zc3$@`2RsN&inJtM)KCiXw}A} z-$tp@Mk>W-{mw}cxm+5tLIP31*zSkpT<%A;oR2eEcis#(`)W5{v@5gaes1Lj8092C zzY{!t{JhpUJd>L_<6zqXUa@M|J$lD|!4jZwn!lnm{9$A&r{yzS4j!I~Kz4_3Pxj9Q{7eHdj$ zI9SxzGFw6(u|qCFiU9xfV6fFM0D_e$u;K5}i_k_fbVAQO&Fo^HUpzNDj=Zg5HqLK; zBO^JKxw_iIpk=d|kf7re?p{oDXX{mW4RoMG;M07BMu(V4ZjlsBcG%Dm z%rdm;@IzzFO3?{M<=F zsTtzx;CH*?iVu9MqlYoiG%kU$RAW8c$^H4P{*l9gVPHKAj18tQuoV#V`kU(`4=a9f z*qDtNbE_yb__rgy8hD}XFD{V&wM%GaEY*2^NC4(2j$S)MY zq83EJ$ctHRq2|M`@Uv|e;oX5tZTLZ=wl}&i-n_ZBc=|Gvo@{U7S@%GG`;D(d?hHHr z>m%0ZY228Lv*?T8Es+|Y^*x0cgq4ozZ|b-~4i%0VF^+903WX?yF&9=}@}f}A6wULW z#b6E?NenMn4nuC4o~&Mj#~#P5Fsz}8lETcI4cK#WkQW9@Btw{BsMw>EeoQNy7#1g5 zh1RG^DTlfN_S1UwsD+cYqx76Z#GGQbd=s2yFbZ{8iD1Dm5Y-b1@)|8S11QL@y9lZG zY~81S)*1+6tpSu${pV~t%J%m}v%um+U@oeHJVNXVP>OPirE14lB(O_)u}kN^^jjtG zeN~R_Z<0EG(1m2v_E zi$<2B4o2=W3+d1emS^+mp){`4oOY<4;jBN5-G0TUf|r4@S)Fv6^Blwp^T>vBP7)h?<&-bM2*Y2x(`N-JAck$-MUNy z##6cuoZ-4sq;B7){=R+79Pj~aMxeRt0%K@PK%1#+xy`w$r7*v{{qgb6oky{8!lC+2 zZMbrcNy5-w%O3-hUy<$;f+dYiwK^#_1rxKRmW)|4tU?n{Umvwsy$IUtaY>D7Zh%%r zNoh~=>chT*H_mdfO6$86N9(eaBLnQ9k;WtJQoJ2DAW)E6tG**^0*=*x#->}c3bVj{ znvS>}!m-PbJ-^kqThOQSRQTyn_0$lPZJL=J5 z<>d^NodGU4CtIoh;ofI~W%#v)a?P`K)xmU^Ckv4@?)>i*t{sA_`;3m-FN}s6Bj0=o z`Wf>af|A?m!^Jf>N4_ol?lQqM-C%X!R4w%^L3JYOVb+xu2Ko?Cutbe48c?(DWci(6 zrj8^0F@g;NWAOvN=O0q%=_93nu$DjoQAQOZ%kptpTJzJO=4KGA1uq(^X|ojXTV+%+ z8_Vjp_NM)ETeCuP_R2c7wM;s3v(*y^S49o^$0G}@#rAsE_9~_yUEu@mz{)}4e@h|Y zwfZG}ZfT=VuDSBgT@TUz1$4{PE4u)^WoweH6ZyB^k-dw#H~Q#|I`D(F(978mmGK?p zHu<}-3Y7}?JXKZeEmW5)>U?<)jq_I(3(x-S1Df-!W>LaxP~|t;0J1ypyoPbn`{Qg3 zA>@w}8qoFB^x3mQc@B_{k+IR4UzF2U)J39#c9HTEg=s@EsbG5sFD6aF!vT#lUqdG9 z=h2{Um-~rny!i8B;%5CMvhvY`SuZDlQ3?=o0E9tmY^X0MAtHF6ma;c`h}o27G#%mE z2oChlT67vIwH#Bw3i|ig7aEHlkhgp|l(#IZboMK_7IkArjAV$s@ms4$W3HfG&gVnT z0`D$6JH*1vJQYKWT)L5{mWsh%DsI{fA9gxhUu;((1IY{K=wiX9a6U+JIqHxF&JYBm z^Jt<7MS`h7#*+rRGKZiD@rZ&+OMuaUOa1Hi5>&k7#0PQ&So`t#)RU44w7P)3-oumC z*AL5lWH1W*y($ZHgC_%;ixU!z4?PvXRDbKMlVrxA<6`1^+V%}Pl3fyo+Foz$_t`1d zA!*L%Q4a8cs(z9h6xtlTJApgxT8cm*CoBXjIt}6l^S+$-Gu+Dwi#7vcTA`Us`rd2C zN>$^#1*k41oVcyJA#LJ2&&xnIWCmhd3gk{kgkL+IIV}g#+>vNISfvIuYvZIoVw45s z-J?=1e$op#Z~56tlR8{AXR9&`N0#R-S09{bSEYf%b14~^)6lFLcbaEq+N&sUC{w-{ z-O_NTkS+%Lkui!rKUsYWq=K!OZkwpC=sxY&N)-DTE6^o!3G>%V%kajs@J5Mx_J7@O zv!XlXUK$R%c4~xNcS0D}JFs8ok@Avz9r#TX^9iQ*`}iQMj~ojbthN(enwN_RM-dS* z7b)_$^WE-d2yCbPcx`JKi$G&}ztQelg-F_kjix}nFU0&mM+t5V7qqvPPfkl9yoIYJ zqBFPEoJ82BiyS|q4TWz6!OG)EW`6I%8U2*{1*Mb?B{Bo8WszLOpKOgX-w_6G-?oHG zT8U?b*73>JZ_rGG{M1szj#v@=W(B_K8G_!QfZ+`yN^oHgx#7wdC+~BrA3@d|wryu9 zf#G}*(EVYha<*n3;@Fs3h(8*a(#IY=P+k0!9*sy$H$#S*2&sk=3i$}F>8G!s5|Sss zM&?s1Ai7m0i0KX4TbwhK3dbw!O;CUP3216KX#^n4JBEL@9?CPWKP+cM`#Ok6SUJj3 zDfclq)5@mN)TYOhcqxm&juSwkBNdIqib<8EhK__*5#2$<{wRU ze&R68&?2h;O8%-k7cz$Q66ZWH&C*XQb=vHfNd=(uC^J+=RQ2PfWea>HIIZ!Vt_rk~ z^bvj<7b>8{P8x#$W^dN){6Y4Ma4_hjVElm>zyQ= zT@g9icd7Ooy*4L37gS(RmwlW5d~dzo(!_|_!YDfF1^S$w_w?nxwsJv?)i4p_IYZD# zA4vA5LlUoR<0s2EKQBTrLuk!K{r>8q7w$s!o#)#%nEqWO4)*ueKvZk?M7AZse2k>1 zDfud2)%;@Dn7#r=OIvgWz@(0_)x<_%4IhtgX*2f+kOh(AnO5tj?#`W zZ~W*b``4VT_VX=65ZFb!CJn(mc%$KG!hKw&ENqtcrSK*-S)mUlOI$n0{Z=eFoJzOf z6#KkG zh_!QB7haS{4qOn~=D-Dl$Sx4>d=8Vw7dHaIocc-87%Xf)AV&Af5PqD-b~P-AH;-Sz z&f7QLbu43nVZ`<5y++2FfqQvzZ!(|48{NQ751Kye@_fkI>_*IG>YG3rW-2AOUS?k_ z+k35cTEJnd+T>zT1uI_hZi_C0WN^|bghFlOPw8@9DbgTxN`Y zx{&meq76(`DVqu$OFfpVbj+B~*?k|Kt1#;#UkovTK&%}E9Tbia0C}BwI5wFOuu`y` zpd4x`eY`{Agbr$cEL^Vdjz5Ln#Gc!Lp6q&|Fg2n!vXhfrCk*+;mFH|Zu`3q$ceHKg z7l?i5NJKyBG&u&ET z<_9B)82BDs=39rw2KixqmpMNRwU~ZJ?4!(_pZV_d>)6(Ts?8DSx1S6;GleYI=**qZ zXHs;Fvz2H<%d4)>r_L=}nJ#Bts%=|V%Yh!^dR82^wxiwr$(!*tTuk=%8a;-<^J*ckT79TDA9|Su>SC zshX9##yG|}&#P`#MXXMN`<2*k?H|YmAgBkWbrfAb z-NB@C`|Ih$lX4w-?(#o!qxGkDq~dwE=eOM5BCM`j@pxbx z^**}L27s9m=R=yA zD1orrK+Wg8q<}w=Yg)%nJm(v8c6lAjIKe60Sk0%ow*#)e-Mb8A*@Jc^>U_7H*)07v zQQM3&*i%FQrE+}yaAdf=SxTx(olT}MZT*hrTaqlpZyzTMbbBh~#-M@M9XF4+x0i)I z3IkRIe+y&XvGgc!wxUH21RYN3%L3t*5O(;P3L8?RerFvHfe=ZnRmZhB_T}RyLzY&mpgzK z|G*-`W-h$Btdp)_lB&1Kp1Yix{B2^nBrweFVtOH^T(?CJ{o~$is#D$uxdhr`j94vO z|G_*%8kqCIoVESvrflcBKSohEJW#b>amaBI_D}iu4O!ppV0H~u3el|6aYq2FBuKPR zc<)h-XR)nD!tuPzoduFMhXMPjLyFOPl_TW)1{3p<4NS=AYVTV)4McA;dd#84V9Rg* zjmRXcg)(#Wg$Lp_f0E$=eEUB0H!TnF*5ptpei0HPXr2>B!Sun5^mQ!D;Z)Ro{0h8r znlrixc(#mn(NR(1h1)@bbG#OFm#16e>l(L_;f7%~R^B@1vrXXmM@QFg`o{o$^Ar8( z`-^vFZ5dsOS*Ouu47|$yC=1ePcqH`GhS|k_Of-`0hm1S6A-P2ZDH>L!Zm^*{%y`* zh2phc{7-~_%>j=J=vMkp^Y7u44d0WujO=Y34)i%Bh&tkC$`BDkcZM565@GqZj#+?& zL~VIoz5qsD%*pd6=$fWxj=*(W7`98S(kPhcS!X121b%xs?G8cpmYias2M7rIF*Guc zO2^rs^otSnjY)6W$`5CJ_&aTR+2%090Y_2`(nsHxmab|m>#i9!E*~2Ff1H&ysU$1+)wEmkc@_@8dFeWQ; zwkC=vV*!l93xh}Y6+Wfw8k$>r_lua~%b`1HKZ?iKT_|4q-4VXr{`g-dPP?c$+eYnG zqW8Vv2q#Lh2k~AnB_%5j*t`+Ue5@XLo0odo^z@1Fm=l{D8zXjQ8e3EyFAthRmaLp; zbIo8VwN#Zhwa*95H(>#$AzuV-LWFyiH-98iBrCkiq+uaQeaaP zlkPx5MTD`o6!iL0N-1LXa)_2P;;GzYbAVI@{*tzrSHQ<#Z~C^>HU%`tZ+D1#!wXzo zXqkhZ{|3*{Am$Whc$l_@J2JUr_|thxorwlU=ip3?R7-T$kyJ}Zc-Apme2JAujo7WW zl9+L$wwajGQ%6ulzjc3*AT&jL%8Yjy!GZLWTyE>y@;0WXU=l#r&kZ^8N>~V$4KSh_ zS9u#1UATcNEL``@^S)60p8MHWx?~fZ=`JtEzyiqjGv-ZNF}wWf8T6zQzcukWGJ>`? zB!9feGxjRP)WhrGb!-CjgYv!F5Z{?y*JTJmT^CRrnZJ@rm_q&%YuK z?`XtCw5M+uY#>7Zd$F7<1F2I4xBcV^Mw+Q#;@&r3(Wc;LM$13IkyI~*{z*+b(5D{< z<~led?oFy*vJ_`G4weyIMZA0O2gnzQD{8^#2$09KI@yNUe5c2`{4|(y=_$SI*6BDg zu0MXCy?o_vc>>5v#m5bgLn4+x&Rwmu9ZT}FRFB(G7Ir!~u3{q5bvv~aX591%lkZ}_ zExi$YCBK>ylK%Err?Gjvt*O@-v@W;I*tBRO?ONxfi6)d)--mWZ9{v2G9H#uCy6aS7 z-M?*&!kSjr+AP(W$7`Oi?)~{I7 z5Y&iUfWr~dc!(->xLRrys8ov58%9Ji!2Y`JmxdDt%rwNL{Y`$ZTVq_FzM?mG%g)No zJ@e9j6ppIzkmecYx-mP(>7X~N4ih1#Ma)(MRef+6pQUB?;m6f0r`y%*)6EC&>AQNn zwT9TOo^inb@ji18CvAs2AY~ui|I>ywRAah##>b0ZHHl(RDBDHe65Fx`VgCnVF@E5; z83#cXcp0gd)Jfn>iB)i&vO@daB5rmG6ANaPlz-pML-G`xBQZNWcV*md+RCE&jn>-1 z^~0Av#DIx@f$Pah;vH;Azi(oBDKw%b={Iz)*Hmn+EKfVLq>BYl$rG)w;pXzc#Q#35*Q=LEy7x8sj=sKG}=- zRrH(SldHRj3zhinhy`xg+Eia!g1t33%xUPA;;>pI6b0m{d{W%2P8-s8Bd_+~N(}Vw zniUui{t*rdUBj;2DG=xn2;nW92P!HB-s+0?{#pMet^(wL!6)CYDK%juK5#;Pta6L2 zIBmG5;TB#5CefR7dR~m^X}LUaT6QKXim~cyppQ5iqKP-p$QA7r-S$ufc^nr|9T5}P z7*pz#9eYB*a<#Ag;^4einyXZVOO$1G$hr9|qEPZfXMcrLGQ{K;0;kEeh;7yoe*4Jf zcXC4~eBlG-ce*|R(TWAu9xmrN8R^vpRbPYZNkY-f)GYEN?{(8}bO>@~2Xel^)qzV8 zBPseCD>7O3ebrk?GJn5iQU*vA1qT=IL;wt5>o-}ArtnjvY9(<}*&oN2FnsX00Vbpx zsQ?3fgVd0|_!9_Plo>I88ya7^Bk{k2_-`M2t{e!xk`vBt>FDB3Sc~8N21Pe$(Mvok|@U8=L z`Vtn388koCiiBv#(<2&sj-Q+tu9J4%uZb$#rc4<8X{&tOIJ#NWij1;h%onFTGHEi2<*u<%Q}^aXo%wrjHKa=1G?Q;bzunf|&x zS4=1kWHr3n%J{`$C>NeZ`8p42>O6VU;DJcvQf^i17L02e1%;jl9l`iJ1l2I0P*ZM% zR0xEq(xoK^D_516?#rQsdNPgy=x+SL|BJv7h;^$q6uX<)O5CBq3bb==MwBvk40R2RsD>rM z8WlIb&yU9M*9|j%@mEK4S_|gQVpAQIl$dGpq|q{FEIJWeJs2sBg`=5k*>O?88>^E1 zA0w)IR1)gJ)lu4)K4xs&_obOh9hj$=ww3w78NDCatL35%V<_ z<0!S3$*3e8_nLmU^)tP&u5$*$icKc-(Y~BMdh)c(CiQ*5pA5o~;3uARf2DEKp>Erc z9m!#zGm1mge{tlT$dI4Rs~nVnuBY=`bDwR9>}LT#K0Nv(d2@5>c) zA4p5YitbRD@IJ;%-iF1}mrg=)MoTY-BI|COFpk2XSV!Xa#nN!DXsIONg3uNDY3UiSLA!bt;u^fK4PSQ&Vr?Y}B+!(&QAJ3G?^}M2mIYDS&${jRMpc;) zOD@)o0wnGW4ClUm2cDMfDD32F0oud>uczV1PqDLRpI6~eSU)1|T{kp4<)814Aj{Zw zX28$G&t>dB0n4eF@T+CU7SFV*;i}2o6IBS@=|SW>s#z zck!$wX*gP>(rUjn&eNrH8ZLd#xS%Js3Pv+MN!c82nvQDmuc{!zrippDI0Maa>4f<; zLf>v!7|N*D_HjTsXD z)soSxQa^3x2pO3$uuXM#Sj~o#d#%8u>J7{b6lh zHM%*-9r7IWnITj5g5ct&97Qyy*YlzVbEYKv!9k?Hso@Q?OH;>^et7ErT?j5GkXd<+ zUsc2WiiM|cj>Y8d^^VF4OJ#WqLSQPe;jXp&ieQh)-AcqhISoxE-+aP*Oef`F`Gq;r z@eV!WsC%mjt^g``d;7YZ{DB$%u}>}voL-wU^DP$SCIL87qJ{47=Y2ZS1P5&4loiL| zJU3_48kU~3=!}Y`r;pT!bKj~LZ&GRJhiiUMvoCg7xq=e(|GbaMtaK?=wU!!v7As#bqc4xAy3Bf*On zVWpxFr0HO%a*CbZ{dMIv}$z%8YMHAh1u|I(C{DWPX7 zYly+uZ8+)*L(B%eF*&iI$oeCwQ@Gn`WE8i60+zgr%=!~;UA8>OA)?tk+I_1xx( z;+0=03Lr8JDd9B)`_T{G!}VDSR4+wjxR`lukya{uMCmkv{Va zI41s~y;yKMtQsoBbhce7hw@)MtZ;pIn=`DPkOc#WtHiOL!}aS;Um!5ZtV42#))8nO zcg2B4(e{fwOaQ2PWPWR-THTXsQHtYBR^2qYGbspvtH~qwZ2}EYW5Y>$SL2%+u8u6| z_D9awssk`Mfo^9`sj0$%7+6-io`#rF*@X&OU(jR4FAXO0G@B_T%sf1LZo+{i)}Jlm ztu393A7wFfsH^9NYu3qQ1G5>3ADKu@(F>)@TM~(Z-^0L8hJGzQ+fI+8m*MS$?Dy}N zm^FHcl^iS3b2p;6TYTq7G=jh}%vOOsH6k1MV>oc8d!}4fIC)w956Iok{0nlOjQ>}V z>qRv+XZA^Op{gl#?euWsVdj0|i#6po`9pLt_n;6AMuG5lZK@2MH@o;n6hop325UIT z@GRK0DsXJA+;kkwKHM4ZhA+x5f@EhPtQ|P;;6HW1#}nFA~woBNEuP0ERHq1|0;Lo9ZZW0!B9jt-5W*_f5QreZ&Y{JLy#?MySZ@= zALo%E3aIB#GNueH<3&LatX?LPQnhyBccS#r=9Us|;X5@UHUsho7&B8b3t{IB8=xwi zo1TlguU!-UAg8~GqsYyARr@aqeGgU~Sm74q*dIy7kn@RD_L#5ktWR#MM$^f{cTI3{ zL8P~b*F6AJd#-VM@MTGiQPt$mJQECsDB~PCc&mmF=;{aZ#{a>#WJ6TpX%QweXWzHAgF@;^@ z{!N;(X2;E?xp1pcY{#dW7431!_+-p&ql6}@^o)OTaq>!!ZCyAPwSB7&fie4gIq+I- z2%F9V^x@8SrPfZ8MNAO8rx&Yc*0L|wvOW<-cgc^!(fQ+d= zk#WH%GX8!wNr?+r&F;iqc?;?Bjo`&CgIFFk&-pJh?jc{EU`dbA;nkoguA74Xn*?c^R!5Uul}!tew=3 zZnQ~wQg~1E`{(17?fbuPEd4FbohDqsR$Mhd@=*YoLyV$&{gGq_>Nw4WY&z%aQtTXn zY)MGyX$q4A`fsh`2UxI9lqu9E81=OO^;2@WgG+(FgDhWIDu;b-^EH$goXSAf=x!=x zD9}#^LLZ3p)Lobw{F-hYdSZcL{~9VJfT2pz*+(UTH2KNLCkDrcNr@qr$v;Ta(FE<< z-b8vZvx-W7ZjE0tEi5k%YT{i5)}T_}VhiF7*U)0lj~CKY-Po3AK+a|S%Yb|j2k`j& z#%1h=2wSGlaHz~$Kw3XmPbDWC<4R2||ATf}c>!p5{oR7qmam)$2BXBPo)-GD5xn7# zcuX3$@7bhlM-qa94sKa`+@`AlnvkmQNKAsdIFYS@n8`27JU>OE#97!HznE!cl$*Ae z;uJ9gYl)%6;w5dlOLfXsfCJm#Df#Mj==QKugF}gxjLadkO=Qf5z?lE`hp=%253hel zzyk_i|Nnqp2PIKaM+YSxVbMDPb4h7g(MtrQc*{qx+g-w3i)B2 zGmZP^_W^>vWu1@T2)!LNMKH0@Vs9IPMHP+lXQ*@t{M2j3!~fW?_@+hkW=wM@c{v7_ z9&LQHEt6}Zu3&nGH@!r@CXCM4X{$3dh&RLXYE-fc6wgqA{gU_%uwNbj+OIu;{Q}1M zYrp22fBp~qHT-hBD%HE8|HKp7_VWJ&vI-kiW0VX-lonll)fGj!_34M3QpqEfXlq?` zMVs9R*sB6W!WJ&!va40GdIX9PlFyE1IRXwX!_Z$7n|!-?Cpf=ZJlgc2qK-?0`>xj{ zQg7evc-GpRE4Q>>Z(U;)KJH~7*>R|jYLg5oYZpWz3-#bISC4p_zQsh~|LikLFUZjO zD_!gZu>^#9dhE^yZQ;~`upcdr@Ty?^>aIOqsT;uC1Y)M_t!mvW6bu2OoKVkG^| z7?hHRUja7Z8uQO9K&piN#1#2`gG{bFIY8$zM(AfEHfX}f%n~31We5={r{9)44<-kj z6M+bM1iAafOQwvHlm)?02D#tV?V@QjYp3E-e?C0xNf^i`TUz{+niHDkerOIY3!t85 zEoG|w(3B<@q5vaG_B~dwqE}>~X(V7zTK=ym@>fL_XE(2WS$v}OS$y8_+5Q_k;SZKD z&V1t$)tVh1VZcoV56-)w&$hgLnt+QgBkeG5yj%5HYHWGs z0mkyzW44VcZL5>Z1^*QQA4g6x7CVD7A)f74s;-*0XJd+dGW$Aato1(7KsmEdH_TNh zpUM7gVx!>FE$(C|h)sgZ7(pc(CzjvHTQyGG54DSGT0x2oEhzwFMMTF)Hu_4i?*}RP ziBV5DiD&^BmASQv5X}UDQA5u@F{sNi_xE?R2KB&aLZ_@)h8IL{>f_+B26X!rm zb`Vi+Rtii@nhCZr#P17+f8Cm$#UgiudW`zvFzha}2q)g;y zRXGn-LL{3vTd3nZyjDNyBCJSxe}}BE?%!y72;aQlu{`&>CJ4UXD{7Vx)7+0mUflr+ z5*&Gfg@1`kWq=3$rwSkHB;6#)&ySx#lQNr{IqXc`NU6#Od}^c?pHgGlt}-W{T6tPi zKz1)_QuhKJ@gno0%$G@FSIH>9-!(Dz+1doFgd1-j3enV5C|{4K*e4$_{8o5NzlE;& zJe2TWbKovj(6xrhnCK-{K%jWUo*>Z`o3fok)=6`rpXBn;K16dB2;3e*bLA+_A_+Vm zM7d9s|AidYrLCF+5*Zny2CmvNjzEK=`vKF;;yEf@@Zgo8{^dR#G}08(L=%bK<$r2` z#am(+VHc1v{guafq)|{z>?iijBog#_eJb+1e>6a0EjSJ=DxX^Lt7rMckB3TF#}7M% z;Ty^zlv3}c%z?9uhMfB_*D%@bN_jSCxMEO7pY9F+a45nYMxPw8|A|!hj@s4ql2aQs z@3<{F|2f`AU8E)yFE~qy7pq%K3dDj^U)Uz%MyB-1=N2# zyi@0e#NhtHKF}c))trNCPef@fC`tUi<`0!1uE99j&;dw%tJ3X!MnS+=s)%N>n@hIB z-^bb{qT3B}^`>+ZqkVlZpNG1dDz=!kW)-qKLusL9@n>Mm-!SYHW$_uWE;>f5Ejenb(X;{rTh@)*R$^99o$n%Me*@bz?I{ahF(e0?Ymw(9+dS_K z+Q3QwI<#{mPP_^hLM?ratj1NDM#bjOz%~^S*n$B9TZ;D2z&6|c^I)eE$IqHK>Bam! z*o~wB2Rok;-e+JN@E%{&tB_C+Z}1t|qFDk0Tlaqh+Yvxu3(EF4ur2Bw&-ibFEt!04 z3}8o)C6)YB_7{Z#(t4}W`#JwKDyOsTy%LL^i>BdpwS^Oh zJ-&i*2KVGn^1M5J@o-J%n@ew_E_gf7v#E7<$$CQt)A0~~iM_D%hlJ6BFUZL0eLiww zoMU=n-bE@381&@Wdbx&9;7VTjIaO^{&qj@^9FxHYGF-n>btS0iLZ`orYjPYFcZ-SJ zXHbnaD?nn%a*0eVQI7_2f-uIflVfCcE{t(O;XnJYakCh!=voh;K9Gedi3^@_Rlg zrL8%`DGz;n3QDQdd)JAQc-OJk5Ow!>>(r*-JnIYfN76@NI~96AHt>?EN3io*m5=q` zIM(@=zHo146`@Vyy#lq1C0IhJE5%A z5~s{*J&yTu0oVaYeq`6Vaw7YWUAv8_6p+Rm`XaVkr9XHDWls9x+W`Ya!$+k`Q9+SEpo%{BPC1U zl0dpzMS}+YN-Z1I zX*GYLOjbJf$PEDl+X>X#px~)Z;{#^Q9YA8Pgn422npRmB7K{C^6s9b6FV;{#1W~o( z1yN4F7G=%rT66~cQ6xR_wY`M`a(Vrou_be#dCp^rpB7ipW^J-dCnBgvA2K-CCZ_Q| z&~RT6Gs{aE+`$B=^O*j?jaa@B=K1!nxHrq6%0ySzGLiFe!MPFrXr`NH6Qu4DtSLea-vpcke+vEqkUWm&wC`xndNKPHSgA3KmR zddHXHsybR^yT>Pu<+81oplLKmq2w^B8PISHO%AJZumZG}slur!c}bBF@|CYu5E65+ z?rfv7zj?R|cR>AJZP_(tmf~NIig`49=EMZDtHL!y$G%s#o8h|NxLzR=+u=bGvDDGB z^WzLSDmzShNhoB`xYbyQf`PCn?t48kqowz$rDXy9}V!8GO$df-?qvX)G)z&hO{i-%Xe*1t-^RXGAJ7y zKq?LtlDtCoVXZGWh^Czs3L!vuV!E+Q&=E#p1z;uuHV&7YpXNh|;wa+L7Wx^{=~P1tf+%=9{_DRs|vJ zxI(!y?_XK3@PObmJQI>UO(LPuW+M}TyjZ?Vhas}+rJ+owe*b=O=>;wS8$-fY zxM1)g?Lcgf_#BI1vL)vbkDl?IOP?j?fWeH=BfTP*4kW`bYmmZfn5j@V7^9446~ZuC=@5#&B@iH z{S3H4($|+{2;ydbTQoZ~gY+a7B!*OdR)5FQjK3U#AZ>lxj0qiU@;_^%JAPVwY2_;p zMBi@%92bSs${=fb*uHCMTJ2g5xMeltaEA|IqZDbR5=|tk7@wo_xmk_^;OOgLIQo$K zSW#%Um;WC)n%&J@>oT|UW$)^kH+Y_IN5bY8A+mzp0054LHKG)%eId67{n-pPE)O+v z1tx2VlEg+&lWZd9)^*N=bI0MXZF4;4#@VSl$Jq%|O9XO5Em(I5ejx7;fTMAYsv@e^ z=RB%erF63izIJfIs1^?tSnwmmFj6d7aat|ur{%ya$AIxjq9ok< z86m9?JUxQoX(?}4R%7k($(!3dN}JpJ{gn@*tqc8P4HwowI29?WEO}}c8@IqY8b5ik z8P}8jHwRl}``gga?t-g6{NB+LDLd1{i!S_Ik6W#aCfwog1>FX)yGV4_jEcD3il&1{ zsl?nK8$)c|sLn1AwwwVRd=+uG35%2YwOUI$Z(05xt7WNI$1VlWpUM>2lpMBlbsj^u zTMw-)_5XWgqt)VNW;_2H(AcD_MwDI@=Geoe7gKI6IP0wAE~jk>JMwq>M4T_=bd$A# zG@bjB4fjJ+Nx<<_9{KtmChR@`#WTwn%(pS{x_w@XB7cQ=h(ST7z8?(hh;ofU17x3-sx?j5mo-F> zUw@o-w8n&WPzHn&P~W42ll(Ys7@Gt9)S= z9e$Q=(V&(<|Mo$a0cG2iWg8xD%{gnud>j7tH0W3J8<5P#6T&127fZCVeNANHo)=CC z$3t171s_W_QVlv4g@Lxg6@HH3!`kAR%fhLms(G!d@6H%hf@TNcCHXcPei2BUH1+rB z+e&%G8{C5vS$20%E-d^DE66bKfHmU*gttQSBJ*l;BJWuISVY!z(JC1HC1axu88r0L z{N@8vLCN_Fu6&0+$D3H*dBDemQT>VdKGuf@I?;-lX1WRIzhGCnxrU9R840ug?5Op& zvV7b9F=<@+cyz|{Hh-%%l`(5oYktrqTNUS>UKEj^4$F3vv8j8yOl|mn@rJhbO7GP( z;Vpl^^C+^A(kEfjTfRWF@!3Jqu)m9G`n8g)L$R1}vnf2< z`dwBJk3k=j5$&|E8L~?cx-N(}+DnC~JV#0P?!Ru;sr-44TGCQIqx`p1dGc2nC7 ze(bJx(UEIEYEcL=mx&=wk)O=gTJlc*5s=C*U&u+UIZd)T!0{tQJ~!})z({P~3*(*} z3TmS%{K}`>Q)Ss}Kp_|=j!r+(oK>@Y_{u$srd~Z1crhkW?+3ddHdynFzxwT7yYvLW zTzyt*SEQmExJ)kA*90YUi?>r4#p{=oa3=e^<{|A%7@2o@J5^4&A_kuAY0)EsSSXKjk3)ld_x4?q@{1)JXpX}BDsHPj| zL_@H9b0E>g4&Rn+XR~fjxD#y8?xNRUea+PkIv64+(X#qvm9l5#@%G5&gjExksGXD$ zGmV*XDr?$=OR~$Io*~yLF})K5HS!a^y1yA(RHKqqpeTj|&}-`z0KIDcr}^TX(fjh* ze5o0Gdr2+RO_bi-=C2rA+vFgXz_{i$YNL%T_^%plW&CPhFjj+L;GBX#l* zqopF6w0WnM0I3<7m{-P(36Gc6uL21|e%vGQ-YDst?QG1BpIz22V10=%&zpuL58$Tf zCc)`j3kQKXo(x(H{D-~=9^I0j!vj!_{G=%xlpA!7)o8a%6tSWRDvP=8H071j>IoC0 zql+W!u!oaH8p?k-K4`u5peH|4K|=3-L{#W2;-O{vO%(t_<;28)D<$PpAA(1x(WoiZ zh{l@r&rfrUD8g@tlK4=?#9)5Ii{ zwnm?rZ2Sh8SNcDy2{5mu7&E4nID18}`+^rUCg>ri4WS8iljC0XFe!|Bx=Kn^v#@F0 zD@H~^8U%bquA8k%SOz~T;nTL+8^Wu1I)o^w;M}>4f8*&l;&!JBRc`u25Xc*57}EdR z6Eu~8p#?TqxSOL~yAg4`ZWF8qq(2IN#P^~|I2bTQH{XoN>%#6a3*-ft01u|OE?`1X zv`5tk=r*~q_GxNORHX4=E(-R;;n z7}%t5XjbEV$a{?V9Eb^eEfIdWDZQGSzi@vs>N1_uAcE zr*3D|?!x5_6)@6?ZcT7RNt67$N-71^6|hPwa{P@qMaa84iw0k%@5zN#mF!4gojyXw z@!S7HE;T$=TG~IkgUsgi8Smyi^Z&H9g9{kOGxU>9BFUpji|2K0s;_2Q_}{W@F0A)| z71N%DlsKAkn3!Mjp4hemD$9=)n^HzWKPXyB`Dq1td%lGPdE)9@@*YSTf57M~5mpki zeM!DToTNmCFVJQaRl%GECW!ejQ|vp>@wH}=LgxgV!oZk>GLp@pjw$>^L=qaZpl?)z z@v|qwb;47wO#&KQ+R^!7S5e=G$|3JCmd^Bj7v4YjbECkx9kzO9vkgz;Ni8F? z$=oexz$YvigJ>}*DWW*bSFVZH8YCspmt{_o2DUb3Rj3Wzn#55Nwg_Jmtaa(BSF$O> zRf8H-I?`IDkDR6GM@25=6LfLSF2EW5CjR#pt$oFew5I?JZI>oBe3- zCZJ4P3YGb{Oe^)DGA;RkE7PuU!!o4-%Cw{s2$<7fcZS1y0cF}aK$#Zrs?&kAeSfb$dE)j`Upag zovZ_Iy1+*rKEMyS%jxA)1$1W5H2|I22iir?6UU7v{DYy8yG8vD)*f1dbJysCerQk^q=J4x$h&|hnih6}1k5Vjt?LR)5}A{^KawS|53HBJ z1}h{jk~=?Q;~)hj@f_96_&$bN@V+RP(HE&YpGvf~>{Mf|X*1o6Z(m<0g%Wv!RtkL_j)`vL&JeyafR8=8a8 z=+_FC&;jVu9#vAvL;JHFvsmq@vPNiHi1YZ#O-UXD|082M;AZFFfw#VFp=3u~gieKD zJjqgS)tMw^bIcLA5M7kTb#!a=aw!`w6>fPQGYqQ35frv@H7s#_qF+&NzTGD@*?UH1 z>gCY(wl)+_g(gZjw}*?Cs~NLaJ5?ccE~yPdOH>~w2tc~al)Re!Z@RmKYwk3?ncF4e zmZx-V?i<1hTuc+BKN+ZVs)eV3)F>s^>Xx^IE&r&Y;(2)LNxwWYfi9Hun zQ59G3JX$8_OzPaN z?Myo}M4Bn*qgU$M3!{o~sS( z^vIzSMf59;efKG-u|JU-0_KVT>ao9tj0;@t z<{3l3(?noZex~Lyz9+L5d7je6-^dvdC}X8|m-H-7$7JUVc8Jh=Zt@;6DVwEyZ`^!N zU!yj8J+Zrb)I~26nlF!YBqH8dtZj4zzn%2FiYq}cV;|{rn|;(2#Br7AiieJi4!@hW zGR}YSV)gG(oz>@$aeeHn)q!YHdYQYG+yCi}t-#Fi!SF-ie#)ER`!cFs=_8k%gm>b` z8&xDr>559@8MRwa3@J9V2*Y7mDO?A=eI|o3%S{5^XoG}nq1yu%eTYaJCW?^q2)>%W;sph~0nntf;5np-s);3!_P8CB5JXSn`X%amX)zwW zb;xy!!iSVA83GY%l%co^k7$b%*2!+JX3BKcH-sJGRImZu9dI~ksGMqRp48pKj5ryG0CD3sjm^5fP~zel_OjN+ga_= zfU(ffobD;pt@C5sWs0A;k5Fyo*7PZWHPzMectUnq`1-?@uwlJ|JF~vz`qGsN&$DK2 z@5hO^{U7%L-uzf;??&cK3K%tyvD>++gBFCo{p16pu zLO36-tnv?*cFM2fo1MyDm@Mnu3m>8%S|~c5WJU2?z)g?Dd!+ZTQA#R=8_?IMv+`f6 zl&G1%>Guhg(F+z@Awif7v6(rg)S(S8a1}RtoksqNZ{564@l#(FKZqVVquDYli#SDb zTlAAr7bAhUAN5!UY}-`m%Xqfo>3o03vl4gJ_^L*HPUgbD@)ZX=%TZ|Sl}UppDI5PU zQXEhD*^u0(Jogi)BE#G_MOO-q#d8d>_Ko$W(br3cRcRq9Ab?%5*GD}-!l!D>@i2PF z!YP5Yo(_%%a#5_5B||Mo`k0adq;)3mpES?4eSGwm;iN1w!IjMEOGJa15^(hgT1hZml9i zeGVoG6!~@s)nOvSq||;ITHW*spr7=dPag~>EQY?8r}njs_=as+Z;|HhEKiJ8Q?BaK zQ@fK!+g@E|e!B)+SRtTdP)Ui+44%?tP=J@lvTe8 zU9xnVyP&`+Pc1?4(gB;tp~U@)0J>rWDe?gix*6U_XtVj%xJ_E&JO4K__d`#+HW@y{ zg}8>_9^SFIHuYkt8nI&9h|(dwN?4%s44t84k6Bs*{lnjh8JUa=)~AUSVjl(N#IgDY zi3`3{kK#&!#-yyT`~Wn_kbhD8lRJV3)UIUqz z7x?4VCKj?fLBgyOy$8W3_5-@3v1-9G5j!sIMQw?3!hrXV=Wg^=jqN=2Y}m2!`xjxrN|gFY!e&f<8SNycwYUvl zL6nw_dDsu+O}O8E*?AZ+P+rX9hLLx>lIz64$F`u1&QcrMx@F-Ej_Yt3vITkLeTd+t z+P^p`GsIKyfG3yAJ>!Ne;Omm!9)ZSwefwQ&_xg=~xi)+mVUndsaJ0ZB-INX^VPi$0 zWjc&Xuz_(F%>e8tgz>)%5TgudR(wn5B^1Iq4p&ni>sK-qcqH!RzfnwX#jPxnI$nPy zag&P{44QJtf=U4;#962r)q%!RdgAZ#v~*)dPk1`HCTQ^nm@2p?=+qW1H?`yZvO$j` zSc`?=9J3JBiA^*777Wp}vhN4`E_zi1JVq4qS}D-^F3D%Pw14yA@{Zf#^8Whd4e#Vl zyV-;k=O4TRxa99%o5@WRTb}3HDt}~|oQo>X+cYW!y%uOsqw$eQt=(9RWHPSn+~ z3R$DsLA|cQgJ79DE*Cpx1>;o~lFuPw^n(PbP zAy8Zd22^~CnQ%#rl6;}uiky@|7O9{Z$p9xBq_E@_GVMSW4)4oUWr3S!j~hSAglY`U zydQT*jRzGQbrhR<}YF5&bSE5{LlkGoIa&L`W=iT z3BUZr3Tj+q9u|zzJnPj;CL-N@(jGvq^h5_IK*(6*1d*}*P^Hl zGl42#nucZX1SPM(WhOFVBvUgOXN^}m6VPsmVkZl|-}t+5e#PyodZH?3(QV`XjXa!x z>z$fn>3W2;9tceM_329flgF<8MR1{2-f@;AGG-iQx5*3Ef*=Y;ER8ryA zcw#0;^+Ih)gJ`n_6?;WTT`Tm-kWxByTAcFiXNX#*79p5u&9!qHCAjotlZ-}#43J>H zT1%L@MbO5xIlUW)`tPe2u+^u_i+eMR0jp^=t7$Wf5sk*ljfGqo8j8A91u?ikT?<(0 zm0bp@!V|X>Cc^eA!|b&kL-aF9hG#J|I|Jr6R?=EQHSEhy@RuV*Ml#57NSOI1!<^v{ zL_{&A<|J@#c24)}Dx%UiQ?%VAW;JtFtgR{y4DlCbOR^Jdf1ykAZl_lsw)ZckZr$s` zfBn%gb&FnE+q94CK(5+VbOf`R4?h9aJ8xBycYsH-cI9d zEV?IL8}E8+)&EDc>L42sVHs>Fu**9mUmBXBI;{4KOkXde=mzG_$VGBD5f*Lizl_()ta5ZKC zZTp#kvbh!hXt(PZWjDdeDnnDC2NLpHl%FB#d_v;1@yAIi0}&kPYI!KZ46AJeIZRzh zPWH13xG(qse)0NTgWJ#$e7+FlDA+K;1gwS0fNZrx>?L;8-#h5DM6LLCi=jbR3S!>Y_Zlv>A7K~|j(nJWw z97TS>hD@6TnRW!4`YAfq^hts6KSwPwf%6lF)wRyYf+8A$AZCCd3V|RJh9U3=Ndh23 zoO6fCq4(Xy-^IS0eRx){H{8Ad3%-SZjSjOd1R+*wakg`50aPf7QmyqKW;O&s+HrC* z1qwEash0fki867ML377f`V;6ixEj~FxNUa@j?MGWt>C;R4w1B9+*E3<}OiXN%-QyaD8ABclM<+nWn)$D2u; zgo*m+=^4$TrDEercgn_5?J9MIFU-6KOQR9Y=9wWG! z9k|zF1CJ%#CqMMm82M8Iq@6+y=|h!uhh`aLa}t2X0J4?WYga_Q!=m#L2)^BDF?p6FjLn%BeUUgY^68ZQllmi zwb;+1RncEh6IlnYBSu-V*vW2ywlh69?}NnY*q9&-WGUaIwt2%?k&@b?6pB;9-(#oJ zrR=d)e&>#QM~s_goz>lLU71?oSwyu{i{p&J7d5k4I+jwfabR&daJlI4i}G+fz<3NT z3S}@s6&abTY_yDfH`7OYCd!x`ujbuuYQa^xvd2d62~7pzd^*`Z>|7wCxBWi3UeYFf zikGox9`~7(w>}--r_IOEz&2BhtApTSBJ|zBRIMZrr!SkE%KO)nu|FH!G0;Jp#gfa< zKJ4$zI^P&Sl2B)g5;_w^c(orFvx9SIbP2;mTyA<+7NNoM&k6(KFY7m>RN`Sj7~I7| zE|d?{>-?;(Jd|Doj@w5PjH>j5QH<5lSIZ{E#)Rxk+7F>n7kezENW|&nDlnEa-qJ?= zY|A2G|1^=0+DS(m68C-$4LOKU%eMf=L$Hx?@*?iwke5t#G&M&WFjZS6#06pA;^%I9D6+1Jz|uGR(?5>8#2_(eN8?l#s0NfM=-|m;wND(;08NZZAT(0IEH*zAL z(l%Bi9-oT7lm|j0-q62`&btN+z`4Xx;_wCwft2$Y|Mqi8kiOq%q$lMe*Lm@M2ldC{ zB5>93iP5a6sKNK}{2|UA*L5Ne|1HOPdpPj8V^GILZMf3{zgA66piSFp$+Yj^<}2^g z{0|K@+HtVkw$=fCWYrKz+#kSf9TCY7`-U0yHVr_l_n_!5=D;r|@i(sMbS!(< zE_vB*^8lS4-$yXreZl{q2KsBs^WovDnjxuW7S16?oAOlUZ{jlkder!I&rnWGH>K!k z%r0sDOoJyge7s01;>wQ-wW7;r3-9quzdobHgU{t4mkaTU`*YKI_^jbmW;KZmtdjD! z2zE~xz@M$Z;9}cLC2h8F1&G^*hCbg#kqST((7_j)>MsM7h((w|pOrApolr~X(Rt%k z&qjk=FK6ihnd1~!C#T6KgzTy$JqS_CLQyh6jD)}m2^;{8kH9}c6rc$aLZ3K@5=jin zpY{eSVeGDm0%Dse=oGNPEhwJLuL+JlpD1hsu#g*27hP-%BHyZS42wPk?DCuT37Ej> z7yYIKQmEI5_0UZgW+z{up%thSlIaTY4mLMwF^>)u?gv<}z}Em2RRTal?pF@Uryu}; z3n(T8k@q7g4qop8!V}xi0)QAZXb#%16Z4T3BOO41$PW=BrV!3g3|OwiFPGeoSh!CT z4qyQ&FUXINl8+n`;P|UG8WWbl`90%~^F46u0|DIE&l3N7Db(6%tW!Yim4D{F?=RBc zuM+RF2)y&eKmJ;Dq;0TZlOV=7ZIX9t9o{wU9p?kE#=BJ!|8OR>EsC1E@%kyM-`k}%-$TRc_kC2qZ}jgX1|}NOpbQo!sV5$$ zNO!z`@^uv!9%H6$)uogbi5vhI5omxR$T{ih;cZ=VM>&Um9B_-l7L<>g+*EAq^yith zbn)@vTAFDHV6{qUbEq6jG&=g^t2Z%z8mB>{?g0gUEK~4 z(O~%yBDJo@RSjbF7L?gG8LkS_1MKOIRK3VF3z1t8u#{>h&)RYTnlo!AhW9{KaLqr?>SlND_hEOEgf5eJL|`Oa2@d(w6%Tc}C}B z`U~;Pb$2q*J4)}S08Cm^utzw}uswDhQF8(p0{auKONro1TW_V5=ZF+AZ+#SJFo>Qq ziQbfwNGzkU%?`$}BALURL^+8fh?oLrFiegRQ2>i#rkpQKK+Xe$$5%^*Xv;~Z5YK4t zoLYU#-?p1pbfiWZIKz)@&^ew_tsA7ZREl(y&jI(eAInAqA7eTAAF{`PLLG2#Y z?;8!{I`;qMdhx6OpIk3P(eQB_qNU#a*MG1uiCl)OUefnWM!lco`OX5j9_}pa zBo?d9mb9SN?)y3{>Ozi0~qa zmKbe;>jOE<`Wf8#VTctot5DVt<9oPj)N$t!}Y#V z_J|>MNnu!x_>zQn{6`21(1n#4#({>@aipx#gTlOU4UHG;Z&>W#Y2CKTMZPlrKqFlg z%GlEM~W+3OpnwHgjx(zsg8#|qS1 zxHMa4dm_-S*3hkOfG^UUTc>T^Y*6z?jP2j9F})hqD%+S{DnMKw`H26QX5Lm>QYoOF zR+G55Fji^AA+5rS{QOjU>98ZI)1u$#gCXsq3+ww}=|kX4jvizFRFOLCA}bXFKb`}n zEw`lI+8@2D40?5a_9EcRdkoSII9`r0VxykvX!aL~`I@Zo``x2KzDTj>_oOLX>_yk? zpT@KqU7pFD@}|-A02VEza^}S_gaV3%Hh>if!f6YUpiJ7*IjMQxA!fv}j|q%I5Xf?9 zsvZSQhHdx%AY5uPT}KMi(lpWkB3#mo|4Me;V?jlt7#Fq2gG?$ka36a_5o!?Tk7*JZ zrsB%p@JggYr`Y95>KJhen|A_nWz&yLg+kP`2A^*2Zo0e^zpRe*`A4{SyOUKJ85&tD zZG762{(Q4J)81yI*S^`Di;Aq1b_|u@by>ICVjzB>dI8U$TXrqE)3xKdXPO~gW?&gx zeNS7*01RwZKn^6AyI&xpIKW?eoqUx+4jRH<8Um^~yJo-=9uVaK7mLNM%2RL8dw>p7 zZSCW{+o5bM*f?3Nw?1x(Qwq`cp!yxVyvN04p_50qVG#6EWUHl2JLa)0-^yZ;fIeJAtW;dL(f!gU4V zk4@SVV}$R@fl*ZA87IQFYh0HT*wy94eQ<)B#*GGXWB%QcyDhM)<|XenZ%@Z5gXYIN z=Q3G*tFXuw^Q<>2KfjboY<@0{Q9hzGtY%oN5Dm-OA05rP7Y)lLf3EZn-u3J`so=ec!>3j-jPSLCj6I#%wxyJcL{U7ZLSc+c4yJ7szRJe&?wGFF z~ znOdy>e3Uwi>9rMSMb4aXvG|YqrQ{&RO7s5*oNs`&OiL!{U)PV!^C`5j_ zh$XW^0K-8*OKNoI>YJQr`fRHx1=+hCByo|KWOI9L?v%Fz{fqec7MZYPE{@{)5o3a- zMqv?qguDW{yh08|WV^7T&3uhRWJf_Y`HzhWHek^bEa!n7Z?U^_F?>ZY4{0Y$Sl)#o zW4i8R;SBsZp~bH#DNiiM()pH~nHKnrGPA8#lc%VgbB0q4H{(} znq{+c5y>YcYUP#gVh!{{^el7gMVz!Kasi1Noxf-J&0pxla!n_~3=l&Ov<+Z9r10Z* z-4;LniR+@JW1(~rX2dbbbW00|dL)czsO0{c8yI#CVB+(qAB~ZyilLlAq)8;`YBI(fMw2rbG@M?Poor#~GXl zWNx+Nudiw24yg?r)bS z^*M)-kt-K_W(gY+Z;EfNreH>lHExzZ-Y+G4)UycOT06z+xp%CQ>w`vSkLAV&D3$B% zlffUo2nO$TLChsWb2qDu5MMd@B46GTtSTGrB+!~;vcj5a3t&O zDGg4Z<4i`EaHx|d@EHHxU3ul1 z+61n4=Z$1GN{Z%v^8yfg7 z)XtFmjRyygH$&oS*O_F(&n`A3lP7ok)GD&^1$S4Kp5v3v=98ApJxcN6mD2IYl}~O8 zzvtnmPA`xp%!k0TzSZQE(a}-$`%$N^8~`q;HrIyNXPd9Lm(^7p_}P!^d8w27-Am6| zT>|6RzG(jQw`%l4k-s_E!+n)%Y%fOpt7HP+-S|0{((E->6Qj>Js*PY5z(ZZ!CG_%PsV*q`)0E6$63zZuU8b5ZvHz~*_O6VFPVZDL zBtTM})!-%T>i(S#P-1uOl;b$#6Q&zkn@+tF*1)bGiX;nV!O5fe(fL0L?fY038#W6% zt^Nn)__1?z7~xo_14W{Goyde2rHOd<(~v*m-7zY)E;WCA0l!6leZkTjGv=U z+;7zz6Yd@LvZ%46BSP-nUUs>yi(Gyl$_nLw-6dVloo6Q=Vi;!%H@l=zG7#`^@kg}&?2mu$y2fB;kNTD*8#s{wBf-{*F5P~x~&xIM7>`M}Kb$!jZ<} zOpWzN{T+TXfGa9Uq$7zDP&dUjs3rIPl_y@ou%}g=;7FYx>8W4^vRq1L8mqUAx|V!& zE@z%iWKr!V+IyEAjE%SYw>+%|5{5-H;c+u}>B-1#`>g_CX>QA@Zh=e*@TK6z&`)Ca zQ*#>05KS%MP9ZVNBbtQMOOCY(rxiP75l%UT&_{;RO9rVEP9f>1D28@WiiC@Z5z)qt zpr8wCSN;VoWdlwXc)~U6iIrJ~h#IkZ=cK_h()^O&&pO!%+{ ztfRXLj?rF&X%^H)Vf-_GI2^U(W9xX|`1#7g@V;0zxcpQaE`L0_`eszUSd*EP3KM{S zadve@8tM+#R8-~bI8pRcqX$o$xV&%AA;EfL=JP6Lqq^zKG!>^H6sHZLh(%W-ZX74a zmPdnB;tTdUxW~G0TVgT z3y;t<0wMbTngAfs6VD^teh~!{IDTP^3qAX*`=OOLaU+`j- z%g^?Up=I&*;x0jWeyb5TTi_J%h`Sk}B#1y5FVmM>#F*gS8qPYU0+8>|KaL*}+o8Sb z;9C~@pEwc7{Z2uXfn{$Ks*bQhgqVGixQpva{+6)rMtI4XTEMrKMJ&N^P&@_qQFf zM%o3}7++{5p2K>%NEygcxQx3UR22h354o+6$zpg6J0{<_ZRrkZGdcLW7Ewu-bz)4bIEsQw-&l#x>i6!vCR1CAUWln1&&jS<)7JbX);GR_HosDTPbO< z_eT}H|AqA0F09*@s^owU?|?GXfI8WLJobJao)8nD__HhLgoK-f`0Iq|TIujtQZaK7 zaNvEipPiM~h2rx)TuTC+OV?=lof_-vm!?)TW=osqQJzwgm|e0kK$3u85^r6hOv{lb z(C$~QvC^}ys`|{gP_9p{u^w(K!X2A%CAul6wqq#uA?c>Vg(r0PcbkUh(gO=3k@kC@1#4G^ynyD@h+yo&V?-Gah_T zn*fWN#36lgRJSIvdy(aJzA9za4f}GpvCeVmRqSuN#8pWDx6S3KUNe zJ#`^mzPlt;IayzqJ-SD~l|z z>=-0;+GG+?#qW%znX*734VoluU&?VDl`>?_{Qs6*HnPQGo?(>_D`Ynn8}GIj(f}MJ z1v6Wh_bmVl2ZquHfg*`r`G%JH)iStFwAB0Px%P!J1% zA-{(eL_#FQf-nT(pi>7*jeIe{NR&D;z|M12T8ei`zz2SM-|8}fU95efGGsd_%Wf={ z>4ogMk$lDiJ^-pRXVFphMO;;&9b2@e8?T0iqht%Mr@cK2J@GaT@lCO>sX?pOvK4*0 z7FU=BjJLnGYmoPD-?nS~HEg9X)~Mso5+IXL)9VIl~Keb8ID}LXv zPaANL`(W3s4$c!dS3Z>9+s;N^8EM_EeEhza9#nUk{j_suW2qf>e+g*}9iKCsog6Bg zZ?q>Jr}}m||9yKyfS{s4P_^z|06?`WU3qsqlNd{?&QW}s$kfPx1l?@|mnAtO)k(ix+ld!M9F@6j38twpy!g?T=!z#pJEPEY!u!L?#& zFXJ9>+dIjf)3~6D7t^z?t&8pr-Y#*#4&_Oj-MUddmwq3V7|uB+F?cfyV?R6(T2p5+ zwgI$}3!5o5F!lbdN(1N5{`{Ljz)xL&I+7Jf!3x7oome5X=3ZpDkESWV0c{}Y;pt+v z?K$}FPMZe1b6ZG{5v>Nvb-tlO)ZqcVY_0-TbfSC!tNc_|M5x_!SVq#|x59_6J=yn5 zws-bdA#Y-~^u5r{?TNTnW#Upa4EfShpWeUinSEy=c~)Hwox<$+jvxEjhFtPi#Qo42 zXBsg&-*Z=<)Bc*3S6-k^e1Tb8RputL{yI4vyKu;#pLG}Ukpaz~Jw3UcnJv#xMET6B z2`$WJ`pr?8`(U^2@tH;aclvMre+SJ0N~hV+tfh;Ss-|kovz~w#DRm ziXO6qk?jnBYuu6^>#fD$t$4zIH!p1;AHT{nS|)rpe>MHuyC@<9XOXbvkQq~p4HPr~DK z9`>A`uYKH9`BOX7XF^Ft_W$D;27Es?`h!?DXrY3;jw3K680?;9n3Z+@U(`6TE|$Oi zw35~Fn}heWmWR}JahX%SCvA7Pimg?nWUQ81)iUx7pRJh=`cw~j~;3?5n3BUWPIiANB9J1(>;k~iI zZa}PRlbe=#&0+ozZM|H05}DtY86`*d<}pK$4)GQ5?v4bRrOeUKKURHL$ITdXzjjBd z6(^^%vSmZ9&a{&~$F=CSSzVpJWR)xX;aX zGTWt*nIjU_J(Zo#{Q7r_XF04)JT=f(q=Qc>Xu1Qr9d8f#Iet1WG2<(My7khed%mx` z0PNu}Hz}tg%|VQ>PG>Z;**Xi>k!~RjL5DS*hOpza1@Xgi5@4Jh)n&ebMkh)d5*6a6C}`OOoS0v6yyXL;uEa-YX<|@htD8@pe+heLD)}Q zO14K{2v`9dy3~uE8NOZS=qSQjUCCJ4{HG+E+B6&5D2yIw2Y0SBn>S00Ls<;I`TG-bV zx=}jig*zEGqUUX_HfuaiH#3)wtKJx^fswrx4ujLb_0^TPt!JpFf^n%jHmywC4v-7t!Q|F8l z4OBHQCjviP<2SlRk2&RHQGnJaU18&c9{{Dbv(@%n)r9DG4&ql3rydTVBnf~L807nXRxU*+M?hLX>P0J8irPc~djnOV6v@`OcceHq9B z%!$Fk@q{vpEjY$nhWawYgm2o=#PI?_deopM@gI27yJ9{!E04qTkI^Nz%-)?&+zI$Q zPvkTGKqQQFK+3GR@03)^h=MttjeMYP76qUi380kyiU`?h+>L+e|JnZ;Mlgv-rt8)l zP)JQs6h!FJs`Y;rLO2Q`5(dcEu=me@MLz5DUh@7f-0&sd@cp-h*UIe*t(kpHI^MuJ zQKPVyar!3skf;bD<%0-F$&nZ_yr$cYlkl5MI2RQ6c|Uniz){PpT{=)uEv8E6eiv61 zx9K_$wlj0mBO42+8P8si2cnNBHCYCM9FjMdQ|qjXR!doWk__`E*;HekJx5l)gntU0 zZYp--j?WQUrfRs88(nZ+(WmdD1!iGJv)z5YQHbaL?_8_+562AjW(DM`uV7AG8=1X# z?0&KksY@x`IeHweP6tcZ|C%;$nXZeUJ(_|D-eY_x@XT!g9Uz%>>=YkH#Giz)oZPk= z8M<6EzRTn7rd3KJ;HyI$x(hy)@NBTT%>Ub|zIU_6hq2eTqm#w4#bv?ChfA`hx9itz z2JJ&(GGP+(bkaOv@qn;tFDq|pjaM-Pi9jLY+93NPMCP4Af?PcnU{dniyjH1i(LOb- zsLF(ecdE#7TK}MDU}z`)&q7Y*advqe`H)B<$n@AsfeEd-insX9B2fm(W`op}R(LVZ z)?=Rb+0;LJX*Ir^Ex%F@StgAVL&$tT`=(Y3*!ydDk5Jop(|4U{x!38>9qsecWGS*+k~NGhjv|ZD*+~HV4T4Bpp#|tSl`!echZ& z&TXmuXKhHgx!0cVqB#UZALI>gOr|4hWV7v9>Muk|y8=1$<>lzAU@tpvJG*b|n~_gJ zVb6zeuJD+XAuYtk3fYV@G`Qh)D>ZpeIVKsDS4L7Y064qyutxB z8RofsYXOvp0q-=yGbX~5BY}9Yzmh4b@Q$JFZyA2hst}^Cws0x%zB{uRJm|M|WzMLk zRPxMCCnrvQU7Emi?`Up%cZ=!&9vwEk1A74~r>A>P5k)0c(;^W{=D-7tHMmH8W+|_x zz65*Fd0U|kf{{Cj14n}W1x*988vtWf*aU=8ciObsO&qZC2#9arCyB`p+|U+F`fJer zoaiT>)o3W>3JDOqKOY2!p{P$EQrFc%^}>rz;)3?ol;- zKb|h+nI-x+6cBj2wfsxHz1Bn%2nE%Ow8Or2$z@`mxjx>4?wTCCUL&dgm`pnaKZWin3eZ>>EfM{Y zN3pfvDIR%KLerDk{A#na-zgkT_eHplviCXJ14w02YU&k0)C9_iIYsePLUF74IR zbVndp+@bFeX?nHU*zZ)2ygB~Q!rb)nbJ(?6tX1O>-UFO? zjPEGv+j2aeewBY}8CXd2FR+p1TQIN`^5x^0yK5k~86weha@~cp#=`AxohZ^pcU7-W z^FOaHSN*xmnA4$^XXGKhxZz?0A*>#)&ullw59o4_irJ;P63!Q;Kqw~RQbE55u)d!d zy<7pk+zK7hA|fG%o2m+X3y#{)0CLKsr=y=f30d%_Z1D+Ze>wk0HJx{&_$e>-K`4Z<)H_M`}&5b0IcbD2$3_#3Mg2|BTvr!e3^AL$ja}K#(s#m_eNz8!2veTrHzOLpPc#J(h$=9?2D_p$ja5;whk-(EC7wsH^V}a<~R^#DeSI;Ehl21}1 zmPugM1V3BmOd>w9Z$Tqm_$fUFVg0O>Efe905UAez7ZC}iTn@l=G*7dZS0tyUwLK#H zh`ebvS&bO=5%T;u(=|ml(8LY$x3gK&#`t)cn(JpF2y+ACv5i8WXp7`e48qM~KHsV+ zVDIm~+$bc^PPHn<4;H9b51DZ(aEWn%G2jxbWs3~p6Tgz*%J8q0%)u=p(MA9oSKvbK$CO6&Uyf~HAxKf6$W zeE%U|fRbEY9-Ro?ySL%g)o%4Y?ORnD_E)^Y826j+YDzl7amUypsZANbovb``sh6U5 ztxg@BM`yxJnbb`<-1~IOsp6r#PIw|#*SOZ?h7lc~ZMD3BWgApZK$7K^E@^GSD;4;P zG&g=bZQ`U>#%&xv@)kC?;N_V~;4L|L8rmc{(M}w0b$yua?QL0p#hbaon>Jc{!+USc zJKvj8?Su~bt`=_8w(w?B;9M*p(22BsB*3i3P8vCTTX2FDD^Q6OFEd9U6bf^K3<`+% zBbX{U2t+zT2ow_{Aq&u(Xw4l+uWSoQ4GU%aKX>I3S7-yluVB3@t9LFQS!74RmBx86 zqoGK5`q6KDL#kTF5c~LS~AUi*A!a-6E$1QaK78DkIOQ@Jlk?;k9G9*F2)Tw zzEW=jT~;k4*>|xQPRJJP-?lC?(8M&RekXIFU8g`Vs?h-cau-|~y@5|OvT3P!I#r*! z0#_7m5p)SkZ=BhwSIo3Mlk?4hnI^TvotDA^#04j?=_azuwm*TF#6NM9578~VQc^L@P;=-578LPTa6A+wd>{0xNs-w zumox7Df~M?$}MIq@Q&v#V+u#(7=Q8Uu+`hRCy&|b_znkK`{U`h-=#(BCQCy~eD&k= zc?Cmp6*nJP1k0!EgDnG4(PfVOyl(rTN?^RQS+Mei_*1ee|oK;=OxCW_+f-CFV8X z#r7ujiJ*=Fz|ZCCQwO-v}&z6$DAv6pJ)HVewNgz{#-QRkASp8>3V`PGCIF3Uy*pK8U7PVssP zttX0cYlM|ohgN<;#hCA%E z*@*%w;0N_cjF*2|JhtFN1q=)o(MOLL{uKHJK8dgh3!)Zk*sroN5K&`Fc1rtx`A|%j zvfF7>TVzYOY|t}U)JpgFH9wEkhW6#&IC$HNbA-djNo`-=E^(8yxAunZ_PZROW0yU< zbk5V3+~1p}@NYM~rM&R;9wxq%ikT)a86r&Jga7nrZQ8ki^=Ch^FGaLw(H|rb?oUN- zDX<7i&4O|Y5M3ffUMa8;OU;D77pQY$GaBUA=9PJEV3H9DQg8qMyN26})cr!}cSvRX z?DpvUPHlQnsnc6biK{pS8+~g<2Gtwt-F!5RC^tjQGj*}Nm@H0zG+XQZMg0#RBW?w$zK39L+)J|{^$KE1tDwJ-JHuRn1BIfwQ z#V7~U8BhbJlZS<&>W7V@+Jl9mmamwmIoJln>lxU&P(h3N;TP!fi^w)d4b-fFbo+A9 z?u|tKD`9FSaCVd=+&UCA@}Bp*OPidaYAm3-$K{}HWf9?-NDu(}w>iOctfiUFpV9ZX zJOnw6Ax`z8oSCN=yHbMvr5+74&v>P&gngz( zLEXA>VAh|L-ub=MDKCPRr8ah%+O*X9z9{(EV_PG$H&};*Vc!B<(DDCAV9Wmn4&S&( zu71^R^w_3F`Y`X>h&5W`-}>iOt&3CkI^^OT-=~}VekF^x3wANSZ_knys~V`Ba6R;7 z(9Tc+<+@YSGUmj94wP&APw2Br>F?wmUxp8IJBH@Q@gl)eGbL3j` z1Ai)U;yZDHvi(+Qu!#`*=IoHQI5V-XvQ-}2>Hi_}_GolMsPlXVv)1-<{X?ILC2pUw z=h$k3E7CZ$uxx@mGW`?*tLEcW7mn7`&1T^Bzef7gQ;qj{WU>l&P48&+@z^t{5w+#e z&^JYbazzLwnN_Zn+?Zb(Tfki>zhBHDfP#$`V$b>6&i&8pJ^Bhf5S9bW@SMu=>Kx_a z%a|$s^%gLWppZ!-f~h%BvE-wRl``z5&G@+yG8C&Z3$&1mTz)D2c?4ee_W_s!8M;6} zJK8EyVb?U`l*8_~u{KIXB(os8vLJFvCWjz?4$F7?V7ZPLe zXCVVICxr&57e0<-S>a$Qr9(?dmasDOCsrVD{zf)UDH;F=l;8L^)4*(Y!_m(Te&f+; zU5AhP-8(8}*1mK^FQfZDRa|lf_ej%-1L|)g69L8g_Pk<~V}0#7iYgS%ohWtT?2nb) zv^-4R9?aZC2f46zw6S(RmO@%d?#r11QzvWy?K`Upt$S|NAPd7^8A0)O(mJ2BDrAqB8%K{h98LQ^4hcqrJ6r*)gTp)i zOyiQi!m}(Gb-Y3e77#e(s`RZ{zDF?7IpCuZ@1Q&O{%b#TAFH2oS8jLG$u^yf0}i>H ze=+)|ryt#v3z|c)`kH)GgEL?f8{{)AgG1WJbzbH6hdm=Ebc8x5_QLd@n-Lev(I)lE zdO5S$1}^EMh0vO_@hK!36^}1t+8rzw0x3^!}=|X1W z3}k*memA>U%Jml=^z4st%T52ZU`;0s<d;;LM;CoJTH^ z;CKr)`T*jCiXS^sR&pZG;uYkI5Y|kZM*B3;dZ`cu(I{*N2>GY1(DX&JAantB1g-A! z#d3V{g&K84fhT3w@Z8qeD?{(sobUz-jUEdgICQz6DJ9O-Vsd1}`&_zO;I_v87P{*XX?(ANxU~E2#*a7Zrx~4mG zz&~4o2t(zKK*~j;1hKatSu&edDe(2Pc5+5wxH{C3j~9|8Yd8#*kiInxp?1KI>A5WW z5qiVrc?xK9w9_mJSqn)&Yr@@^AomA(OMXiK?WW{kG`x#dyz%H}pi$r6|9X0N5-pCz ziJ@Hg=e&sQmvMBXyZpeh6YRHn)IgF$(v{td4&_>T0bjb%NuBTZ`K9wBmG1c{sC|V; z6FjJeluxr_-^0tTz6yGCR#$u1asB!ng0bL$3+}C7wrAr3X}9=p(zjS@k?L*lg{%LW zJiBb4gAUiLht3IyJbP`!rzIFF^902`RjHhm9H*NaISNiR$V1x`Pnv{ytSq8nN*BH{ zwr)=JyQ>KiwK={lTFCkksR?npn^ghb4@IDS^wQ{8WcONS&H>DRpy9%pJkBn%z zce+FY=7<78<8d8rLO;rPhiU=)qLxFj5F+UyMU@GyT!q?%$5X%2cc-2JBd_)B$R7!j zV_$B{^VLgIsyubKQ9k}3(q=p0-)D{jrp_kW{5 zv&GMqrS-eK5!_FcXgX7n8#d^3S02@~eTn3$-wAe5YKS!|3#?HbN$n0TF7tm&zeY|e ze=EP?Ob;$MpqZRkXWp9I?%ds(hh6EL-=$yk<-et0pwEMV7@ogkR4(8Dh*7sPpFG$z zieSb+%0D)lL}dOaM(sTD`93SkSiP>e=8*~+(NiNGaY&19WDkm%cZ!a&mcgcfZ(qFx zKa`4T@wK(~^-yW){hl>_7GC*6eou2C{HCSf%^U|&V8ES=rL~cl;+B;IGUn1j#*_mJ zI-GolV4Y;n69nY7BhD3+QfGvJi&3~u|<0}s?#4Snj;;i zR|b7D?>i!CIQRBUe$Ha_%Lqx~05ed1xCV}M*_b|WENcAc4PYg_tIgzzgZcn6FBKN{0F6iUI+5KBja z*##lA&Bu2IoYtJNvm3KzO7KU1sCOHZib*H<1esYVk)hI1#kmV}Z-1*z7f<^>@3qF~ zxKe)*)ov<#SqNoyZLfZ$Pc^^yplr0eptgO)wM(k5N~8CK?A2~@Lf>Y%x<4ztfOqK> zwGAKa+bdJGSC*z}#gW$;6gELxDFxKYW7W?;42rC)>ld;c6e40rubB;r$VNp=3^21j zqbdd|2tiWVJ3y|eK}WF2A~T~^W>7?<$}2d8v?(a%z}w?A<`@<(MMme42Y!@TayegZ zpHDj(!=>DexA6dRIAkQwwZJjqFvG`iaA8@ctsY^4@JTwWgSA0QYxpyp*e@MdnB5%71eT^o62^iX+Cf+4d`t@8c&6UalvfKdv-stolRDB``Tv1Y$j_zu$<0= z!`n8S?D4d*2>Ar*RS#2C328|R0{E7Klk>Jwhfs>O6ZGy3BjC=bUCQJJOT7PF7&mU9}*XdFE8@M;9#a^ zzFmQc+vBsEif?wmbu?ftQxB`WkVQ7kjjDZE*C^Fy~y!0>eAvP;K;7 ztpiUTx43J=A;}D6=JozxIhz74-N&lp1WI9CXnb_`9O!APpJ$|*ncEuc2#F^Ndd`eR zza)C6q}Yof3sbMuQrQ8zR_MB-Pett1qUEN-UJdouN0TS~xv&60sm-E-58C*=&F}+g zqt&3Q3NlJLkPi=yVa0Jk&3vp#B&u03ip8via0H8CC9GZ~>PZiZXv8A~gDM)sa!8Hn z@3!LNLsMKBflM;Lzl0BSq zEwJ=cfx-TnE~@vG%Wae?zIH}kI0MS0sbNmoXz<$tveEsnVfG{`!13;r$18ENV$`bLbQF_V~ zH8Gg~J=-m`2As_N;3!WnLb0D=IgSv}1HteE2!x9Ph2^sYgdt~#BLwgRwnJV5hX4Un z%Hb(PMf1I6d=@s7vIo}Bom-^d%7UjqRA)Yfhk4UO=2>#9HC6<}x^$L$GK_k}I(F9{ z>{|bh`c+0@YK{FQPwh0YYpw=ba~>wLZUqpDo0vyfiH03_{>pr5qM#6rHddOdG41B8 zr8}*M1tmF)F6rn}^}%>V4tESA{|{U57-daL!qM8 zM^nZ7?P!8O^DU=r#1@B9-*)HS!-mXZXC9e94Pul~M$<}|q0VhAGQL_}tV`zJ0sU~V zo<90~ax%qkf19R^Zu8-Tl>yB19yP?2BHtl0MhimMg{ZbwkYSZt2X`F4M5u1&Jv1&K%KGjsh>r3ElN3|>zw!6@Nwp#r{x$6$g(-@k0 zctI~w;QL(X9DKljqB1;F5vUH3kcA$)G#LjH+fei#6J6y*_@vReFFh9PbV|8T#q>>$ z<(+4gH|@?mWF!*k)QevFn_m=CgumLc%K}i4Yfl{PaM_OgQiSCXgy=D%EHGLp$y3N5 zKnG`~GW@Ah*9lbx6o+Q~j^{oF=hcR-K|(^Y7;!x?+@9 zsr$2kdMWQmMcaOOoT8e~(hC1CY+w|sSB_F7pdhTC@w@CKRUim49DYvBUIs)Un!T9A zu@C#;wXyI!)b*8`<~`(*AK(J?wqW@ z2=q2od(v*Mei#}Q0364VxK8?qq2a}%c~*eQ<RoKT2F*C`xfQ$x@5D8!N;;kG@QSJGc(ryT!DeJuBCShx2Twcy;yM z#`f9-yPxydYHnVz(pya~#-lecg_$DX<1yPvi)7NSdCeZ3ZyoiQr;6mvg%z?J0Fz*% z;UorFT2-g@cCnOy``zSB{l$#OfIE zb&kE&MRE2og%Z-v1#ACtok!Edq!@-^{qV!_%&=N=%nvz3zMPm;Ewi8-eIO=m7B{M% z4?|TVu4^u-_Ns+JjtU#I$F8rCr8n$mE!M!Dh&E#Rea%}2ISF*=Os=ea{s>NWes;%% z{tH)Jsfk`^X5=ZJhq)4gq(=|CJdcwrms&)T&1M~y83IRC`Yg;A6+<3q4)Z4@Q3<_+ z=HPiF>Nvjiq62>AuEGi{kLMi?9(ubtT)o>$F?;&|P$vI*?;k$cBxnOh8SBD^G@~8z zA1pLo#w;9lSM#*|S5We(7~Q|DKRBy$-7}^#+41V;YZZZKm-<_Sq@T71@!O)5(y=rY z_GLiQ@9_E^HYse2Rmnkf9rZ|{qJFNz4JkPIPMbW2{7suE;&^9B*;;eU9NwYLkKN6> zZ?$Q24(~gL10CFJuj_a-JKfvMuR|QU zvZ$j5OP?w(r%lQiJRV;n8#q zP+cd1H$MrN=vA-VUy%tc^Zj3u$$A%y?hK~I54u8xA0}2wx8Ew0^;L#W$8vgNW5#Jd zw@rj3y~ey@&kFt|+`ReM{k=N3{`grb8?n?SkvyE*YCP*L>tWK{KV{)F!WvV&CYu8MMzwR5R- z^IWm^gSY|M;wm-bPFLl*&#`Q13fL9rMKzpok2(vhN=#20WkYT8F*B1dy5T~)6mk#OAIw?)nUd>2e2}nFX%%Hs@b-` zbLNo1enk&AL6`h1dP$WqG^9zwk6@f6RxMS+c%Q=y)t4ySVbyE4L$dXYBX2J9dbN%2KzT@BP37yvcl`BIsZb1^%U2doja z(uuD>rU8m|)6`OYk)w)}Lk3fo0O9v`p-;E`K9CH`?|rh;{l^DjfYe1El)V32r=qs~ zbiBTP%C*YFIWl{!G*z`lE28Ui?3-L-n4O>#(y)NkRuwc{>edTPDrV`=l#E40TlG*b zFSHCRn;(eeV`*q-8MMP_x9Mnc#vv z#0*=2@MgzrCEXvE0c!MnE{l=`nN<%GF6bqI38bc@OZrLp9QvN;r!IP}hL+oqiJbGY11zOwu5`0Q5B zK>4M);~%Fyu0qPUj$Zc4vdEHa>xKcLkLrr0{%+HbqOg&8JfT-ZEn%`+Og}lyok1|wxm?yOg6p~a?492?9ktr(p9rbPujxNBvjzn zrAIn2H|n$Rp?8iI*n}qx!+HkBf6-)&*nhV-U%hM7_9Z7Cs@(&;1}t4;Ubq)Vyvj~u z2^j`adE#6$Us)F!w4!gg?FpUGDOPT>3L- zSY%sau>hdq7gx5JyCOy^z(#PCMVuvr#(6G6*OO<*z%~xBb|0ZN^K*i5-$uIct{*zo zeHf;(`{{6RSy@lJ+Ipynn=i=?=1V+1OvFfK0HnwAq8smHnh?T%!){8)xG^OrQIT;Y z)2GS0tY|E614o7}W&%7EauMx`!VvQ@6~(>bJ6L?*A9m>r z;68tA!FFS{-BxP2SaWiU;n6<1t*vhx0Jd@Yt5A!}ziCr2w=LABd_i<)PW_j|ql8={kiX`ErYI70eFJ7*8 zH;&;RjV+JiRjW47+VlO)Qw#2_SVT`&OMA7*|AE+w{!fSv$E1$Xht^Dv*2h(l{V&7z z<@vu18+T80qhoTTgQdzy!rWI4BJsO{p`aoAO)2lE4)Tw-Ywud|$D8?2rpvLvh^;t4 z8bh7Jvk=X#Xn$zxv<>dE`@`uUsyXnP3yjE*GSX*aQp|MT33L`rePT$5f78gSJOYoK z$2p=!xv}HAkI_JlknnHmFsfbLCXNhI8zcZ7cRNv+oqXyHs^Lni?o3-abmt1r7q$|b z5*rz`d6})u%ojJDRbGl=5{=_5a=sHrV5Dk$G*1+&+IqLjPN0LT^AXmaRbA!wL4k&k zi-=$76*bLr-iygm(LWOEm^C676T+K20#39S_=3+MJd3!0irWVBo?2(icf>t5-v~P2 zT}n=Ro|6DGxV6Xm9OO!J}aZB^V^d5+v9cG9xOGl_j5v zs&GUalw(USmN~qoR*QaCRt2>y&+-K$Z$)m=VPM;@BQs@+qA7uE0)RNdV+(sT!9E6w z0XJbFx>#{iZ1xVv>yFys45t0>6?kO!YCGwx9f>H`MK3=&pO?kUNrQx?{S zUdXLU0}@iu-^pG%&#DoZQxb-tb{JMcwt-nS`FRS9{boN1-?M!>s%&qk=sW~DCp8rD z&k`9MQ8$q0#`IdPZb#II8xMk}ZkHN2p6!w|zLic~f@akCS(uv*z>a`Xg{MC5KB0lz zkOCH}otIri-Lk{9rq5ynDMlS#jxd|y7|A*NQrRbCrqo){hl6q@Dc8FCiW-~$iYF2t z7nPUa-q$Fggk;5p5|N%O>>PY2H7=heS6wu4XB8l4MjI&Sp++K{W%&!aXu3fLvX}!^ zqD+x2cvyg36jS({Sju0o%ris&RU+@CQ};rJDLhLSAu>yhF8uphMBZ(y;7gscGCW=7Ef z2x1EUP&SK=8Yuixlpzo)VY>mE$>QY5C`bC?Y>5}&dMx{;`wgEu3inD09qnDsEPZtc ziRlI^cH?99lk~B`+=Lv~wsUJJ=)!L~WqOg2F zQ3%$m0*r5y;Nh$!3rY??&IEVv3C<$H354Ov1H=%7IOxNO5cZWEDKKUs&1oW6EVUdj{ssD=4-x<=Q2d^M<1c)0S)@8MkoSd z8iACbPIFXEl7P?)f|OD0UM`Lhqz^9H7p9c)H){Y-!w?k=y^n`C&IM{8qi?mp?>6)! zgg$HN%n$|aCR{LWU@OTj_u0*@Uv8+jldJmh5T0zZ5AI6Y7!3o5y{>*7*9w`k<9kJA zJyZ`szeeSuLdQv|*gOMd1h6sksKPCK5z0^VRk`~=WqjpIb;%4wtp}Ktm6P{{uqloK z84Ov^Eyd7;{-`F#Y}+;F;!1qY31%kE7ABC}8$z57(ws;vAIJJ;TT~|dc1XkH5fl?? z6~TCu3q?v6#NmY*1~FvR8ST(e#2}Id3PhxhW@m^LDDf-Uap;URW{pk-Me9(Ksvo5x z)e#{!Oil%P>&6g@w*{$mO|Kc6%&dVOPR;X$@-*!-nP(&`S_>bR#hqzgPmg8JtgMYcQ_o$EaA(E4j+LytcO9)TX85?Hpr50z+h}4jy+LC{`2VHr(1Z8>w>YBl zKgE%zG}_|i!vZ8(XY+!;#gWIq#Sude9ogSF4qL`aIseeQu4as*zr~Rr*Olj$oK4WD zMU@R4I8!J?`tnbU_l9(kE*_wTYt zD_tCzQIo&a;9ng_k)PrgS4QNxQ{;N{XaRzG#jL}do@f7e^%iC=yCyX<-I_L?aA7ra z_D0`Art-9#(R;k3#+qB5YWUBc_so@twfUi^;M<202TP8p_B?e8>WG&y(Z}W-y3)Re z=jwe(W$ZQ{$>_!f$2oa@*7|f>BBy(E-+Yz`dA7}ETJ)Q{R(pvL#F%ye#e9}u&s`~Ct-WewCftn=qzc$ zY>ijJ+vrFw?Wp{*-zCZ^6axaQ1Dr^T#Y*1NC%v|;&-!u}REZNzD2Mq#9uLdd_4#h# zC2-mn`(j9f!}I%PRh?Ef=iOaQeU=Q%J|Xu>@%>-^Jw(GtxyDy<#X2#~HqZLFIF_V1 zx6TIV$259g7?I+^kXtb2SNyBq!01xu={AziXp zWmhuQ8Ss4RhUcBfJ;i>OLmVCPra@3doEkBGTNFqz=AtYLjr8H{6SNnF9Ad&}xZL2< zx0gm8oL|VFW7++aHXAYa&B{ND*Y1X)Hc;kJe;!%NuHcapTfh{u1qnU zaC8oEv|U9IZr8o7F9!#bvfz32gX-~JKo6CkHdxwjPWB|eboce=e0(5-jDwr4i$|~^cl1+ zsX~4ujehpOy)$CD#Btm7Lfu88I6ARyB=dI2{+VOfB~>jf&*_q1%vYc1&R~{O+*Mu^ zjZj@w;auuJrFxY4y%}0^`DHpz$ovd@e}S|1u~l~lr&UaT7{wqBK8t*+pf659JQ!vd zknA%@edpwq0dC}D93>wRM0K{4oH^)pY~Q4_0mmT6aUCU$o%ugHzPtaAj&F>>#rqmz zfJ|B_vqdb0WDb>iyFckP4uiBDSfyC7aLKcFpS&S0dWS`lTUx-Uw*PM9V5uB0&VC!4 zURhOdE^(#s*n++ymnuuZBYSF~mZDEZL}d|UBPlQ6C@s%{D%~mpdf0z%;Vx|5O5#gu zx!(?~Qvj=hclqj7Vl-a9DUUs&i1Ug7X}=vGOF#`^ z3&1rMA*#?p5_RqY{wb+g4gOFK0FmF*768!}{7O*y8Z*S#nmJI{nG!-}dI@Glbn^LX z=;4Za2#adPmB`f))MO9>j^)gPNs<>o{xc*qp5P5jk%U=1j^R52w$VzmMh9 z!^VV^NZOxI4Yveab>t-G!z9Jw^|K-j!b+J!+C{L%{ln-$Icd|*BlIW8(SRX}=7~_e zA5WjLtB1uv%7F%?uOrL(O3HtnHc;T_Q@|_xmqH48Y{!aU6MCzHoFG(ts{B#c`6KTP z4Bu}-oFPvnr<=b-Fhsv;9V+7kn4WU7Z9Ccxhxv(4shifsvv4yow6pX*_2N6kLa)M> zM=uBtMb0dogq7KuHVt7~#7i!my@Z-NiyGVP);QSFGH6UIZ7-27 zL3lj*r$8bZkylmsd$z;5?u0j5u^U?^H*$vQ7n9QL)&*jAYG+KBsyuNR1-}x60cN&@ zDEASfezwO(n^8up1N(p0{gUvr*QJa=vVaL`)25o^+Md))<^jolr`V208$+$lvqlaJ z^6%X;C@-l7(vQMi5*I;8o;&kuaKa$kbv zUW%eBAHuR!-iCJYyW_i0(EP>18hQI{rsk5~12WE|nZluwGFu;&Vw?(K{2~fRwqGCV zS3k2;Dd!SjlHo!%HcO6$_4pz;RF~nxm9(FSy}H6n_WcC)+W5-voYat0pooOG4PbDhWzzT9kR;AwWu5I zOFg(}srE)Cao6p(D!lOv?26-Zk7UZP_tw`Wm>*V&Tmv=Do6;N zU8z6f=l3K6Bu3;y9>~}Qmu8^Y+4=!Qob2rzLUwHBE!`F$D|VF!u7MP8$0OV?xvbSH zAGTcuSzc}GCH`zEQzz+<)p>p0edoH9{{Ul7?Q{!v!}I`bG2Vr}Woii9Y@yQVRv=Cmqd|*3V&B+ z+{3EGZ<^DLIp#}Dc;B53a?ji`+HM4SjV^Ym#iU=Q`ncg`h7^`_mj^3ZFe}_zWBY9l zD=viQVB=)9G6>!?TM_C%B7nxigu&|87gY9z!OAg_UlQ>d1$UpO$xUS8SrJEO~{iWf8e_Ht=Zldazl zIe)Zc5)T*rr!%z5|KEy+uKsu|;0E_TUKc z8#mAKkb8+Rvd^hZ-M-XrTi=kEgZm$O;JT@zjFHD%v4G8^5B*y`=SM|uJClAF2E@RFlH>ejE&x;p!_E8{}2d9{}Twde-Cgc0rs@Nkz@J2?r&EGF>Izn zj%p3g0zFF`K>XeQtfbrjT69<${S@AB#{0NLiLFSoTafYNa>h2CQK^DNu$~DAS_~~! z#p93%KQ6ZHi1%voVASSLYZD)OY>J6@M9;Ox@c_=;Direk4B%gHsJ_CpD_&T9vq!SQ zzLffiDF8dZ;9^V2Nd*fPfs=XI5rUg)bF<GJ6mC5KEQT{%YTokSA_}PlF1QxLx@7 z0>7dg)@hBgqh+_(3obTG`9B41p{^)PBa`37Z1v^;6tgpx&l-FnR?|Dwlr%d;pkbh3 zely=0vdv`XX8Z$@o=X0KNQt`)7`n#|O)?!e9@&-}FM}Q)o*e)WjF;?ibQ4z^%G`Gk zJ^$1i1xAhzN5hi`E=`}T{m|sXEFeB}(~P|NpY=)WBdJzql_u$?3(v{#hivLB*Vu-* zpSUv?%z85tuH=CFpgl6nV`TcoK1*XCnz=q1IO|;5ux{Pa3rk(TpnhM<`)HFT&A#htwLI z4HN1}s7}+2F4!nBp6g13gft+Ei3Nczf0IMC(?=8;2sj2HCkTNHxQ~*dCK+anz{!&% zUs}pT2u$ZqAs34x+YY@87nD#ACmtCXXU}7vYB^WkO$v{k^4uJBmRrzY@Pp6FFY8zNSDAabD=AS zlAbuW`=vky$9r)78VslCTiMOqkZd!F+g&~M`h9*5o87fr_W`vx ztze9ORVzB;`YUx-(7E3JYQ)1TB`2krN=w&X=4H`rp?^8vhZC9Y;;CXj=7E&VC*V3P zCX9C3Z!7T`D9i-d$BLwOj)SY;#Lkh`_)LV|mTvwI);CY3u{iQ^OlFjQs582jc|lp| zzp`3hZA(h$pTZi>-iXB`9mCrbksc>lPN`*h`BykNI7~79mtRg~wu>ezVVXoO2`Azf z=Q0r7q-RoeJ{bRnpi47(?V}RJj{EaNEG;sqO;XIg$6ySIkA`(gbW4MlA<7ikJpIE^RS$f-vpAL7F>Yit!nIi2hZq>VS}e1kYSdYB$a6;6+UnH8FPJ zfN&TaI4Vp32|;L@@eerf{0AXHF&;oMp8j#RkC5b3fV|NJr*!RF*Uw22f?M`u0{wQl zHZd*9P`oy$ptZ?nKEEcw*6r*}&_!)1@6qCb+4MriS+*lZ_7X1&^V8fkxgv}7_1^;n zm&7sV%2P~L5gfF%bzwStC&V#2d*k92h-qB~6~8I6B#7#eqadQw;|AMv1t6@e|;*|=*2pEb`;!B4o=d7vd~6#xpLoQtb6&>OtkPOj5V#gx3iEAD1uQ~aG?`dsP2z3*$EF}^p2>V#HfECbl+uR*keIx32&Vwu6=iZzW5@H z2q3HkNjTyilIev^Z0I!%3TxV?ZGY-0@sXn?U{s2lXpM-+$g9Nll8MJi%F#3eT{Oi^ z%R5XTGKR<4XDI*vFr^3HKrgh=g`ywYA>$5S@F|W#2_Wck@an{I(Rzssdy(%+BIveb z>%c3T_Cn3IS%!&P5l(2qdGdn!Jz9J2>MKBx7cuhL?~q zfF`Dcm%+vo6xX2(s%1LHTguuaeIlYy<;3T5I zxXJ2+?KH;qT__cNra+rf_L+STlk%LSl!*mRP^jVTEF@5Ba=pxIN<@9&A!8C4+IqNRTGb zErTUcOr=`}va-Oo6LNsI6&e`xG{?kRxG39+QQ~dX`%@A+3pEWEaJLhHZ>U|bV)3Vp z2Njv!Q!k|4Q?m&hOdBOPj*%ylAcM#Vg%rX^ReU=g|4yune3*1Bv{i87d61r*itZY1 zm+r-$vS3SjYn=WCDYv~?7X+yg3CFK2O&}Ycw3z7!?K*X~3YxZESh@ApkZ-gUE1oq| z+A;tk>H$X6b`(`aV_H3Sio-S^L>_=r5-?`4i1s&?p+J?iFu=72*Bngki_}81fHf~P zvE}5lni<4Xb0N)PVjHoVY4B7mIRZ=5J`L*w-@RLFu~{&$0!v)@o+em^79@d-k*pdo zk1_Ewe>_lnaQ8u$d?H1jjQoqd1aTO9zKJcF!+|0e6gUV4zIAd9gDRRES>OM@0#jrf z5)Geh4-f$@thI-D2asV8&<|6$F}9TtI_C#Fsxx#>*e=pA!v5)Nuq?bo_AC;5!Tt9? zCjC*fNP*JwX^b)1GYOr!0g5!}l8jnteWb8RS~q{!sk`u2bQHoDc)R7B97uAvziB}>n z;X*tz2_Z`qA{3e~5kNmB?jRO1eWKz(QpE0OwA_gTe`MrAYC+2p7d+E16aj&y4AaMD zXP`+Gv#)-nTTmY~j!=Uo1UHGjO{z^=FjayM%+_Qo8u%rm7=mv;d{i?mN)%Y~axx@; zIi%j{wNdT^X*U!*f~(Ul#n*Yg;9MYWd>OMOsifOr2P7=Ipk4Zhs;1kEtb&!$`Th@H zrkl>9rP@*zy#M*7sgqif9=96txOsg&_t%@Ei@RoJ?iYu{SU2MNvmcuxmGQ$kgLt(< zTFHsyN@u0ZY`(Dsp%1I9uB+VD;m@YP|K_*3sK6R@U`2H&^1SSJ|GJ)YrV<_d|&8q0dRd5-7t$^8|w z4wGLRPp?myF)t=#t-DwLVDyOxa^BN#Dn0L3gHd=#GU`U0a_AbQ9Hq%eXh@?fA1@9^ z-NH$dnCR(vpfw^9`POATW3_LX-e8*}&}x@J%EZ35%=eKnjj-US)V`VWF7MWpo?i1cr zTU*m3CG_CE350;zJ&RZsn^l5ISa^Js5-D_o!U)XT&8%T#2J2L)QLPzj7_|fHe0i>M zqqjygEvbQBZb8(Ld#+dwHVyEZH<&T+%E$&ip zPdd+OflKbluI*>n!4vPu19lPH?+L#lTOiX+1s!)V-kx?Iss>jwv8)?d5#O$zy;~q^Xc-@mfE!pbqqkPUJOyWbTdpY8es4jQ zU+YvnlN2s>fOY%-Yq$IO zOX!;Xq|>#1i$UYMv;J~RLe%$HL5+@JJ zopm#=-L9VF$zNY2P2KienvIXjnQ!^Cm*Wth!H(M?i=Ol+-t427(nDL~C!VyVO}20@ zx*TksoF~)@Z*#L(w#(1S;+@fHTV1*>w7@#ohYPxo*PHylv_8Ji&c2?_thkk5F5iJl zW8Jo$$1S`!tc6bM(XNEi3(QYdD{J*AWUmY(xS4n-^k9isePTBoT93;oRPHI+(UHLv z^rF-Wf<*~k=P(7rIyc{RnBBuBxh@8|Lv)@Ffb!qE4yPc0_~Kbg2TX_0-|S}2(O(Mp z|GZRCmm)?wC+ZM!%@j?X(CYBfWa96pQ!@sb^5zH3e%oX8YUEw9O_AGg_XFWa4B^AT zV(trNS)ol2_;;N{b7Kn_PWnMc+!0F&V;CX5Az%gZqxtc1*Xnhgf2uvqC#>4 za`b%QDbAoN?)V+D&nvM~+U|fBm~!5%8$p}M3wS_}z6VNk0iQ-dQOK8LNh=*=wH90n z|D=TzSQpPgQbab#sJ8t?<`TYTd~<-7%A8Cyf%7bPLlsmT<&%3y2bbwcQ#c0=@OT3S z6rWmVAT-Cv-sZEj0`)KSx6=aZ)t?c?1Q%t2*ZTJW7BpZuH=hZ9h#7u?qzJ{EJH>vd zoSK5ta3)b%4J2++4>>BtB-$Dyi?Df6K9v%72O{X6p00}3FoR{MEI$=ZoVY{s+|X72 z$*#)A)x5;kwGGr*WbTTiYx6Jz8c@9BywoMtlKzD7vU-0_yLu8ouCZgP=gI*G6s2gB zxq7o`7S`m;)*G68(Ku_YG1}u!l!5Dn!o1Q0FFJXzX678T!Uq(S(pp5pkh^Q>tn7Qo z=*LpbijwagnV0r0Dzm5X;}+DW`3xVSzjqwss2(bBDOD7~bCxKuvJuhFVUW?yxg&!m z5j;~Q&6QREUhjR@`j#}A8@o^vQz^^-?*aA$c`CnfnQU~0ECv(Y4)_=EwBgI2sfG7p z0Tk|2>r)4Vd+xDjz#i#w(wY^A4q!G;o@x-Q<|V+b;e$d*^(t_^Vc^*ZBz6r#*jQ}XRfH^@k??d1`9sXH#+; z&0?=sy)h=bxGD9M0Iw=`7YB9y`L(#%hmmBZX5-w2B`UZDV*(T=1dD}}HMevuLViRJ z&&C!+zy;jw4h#$Ax`|1a3HZP55CpG2dg!}UmC?QbxgDRjyx%S)=_vowEc+@>Hd~%< z73#3Ff2wZk*Tk5;>I-X}Z5NZ{`8il+WDy8O&hvv?=SMV>+}#_R(~T5AvF!W{Ia^_R z52(~Jh!ozePoAY6rm!#HqZ4jHj>I1ZGvPdn-M+TldBZBJt7^Ab#oJ}WTUAZ+O%nLA z$I!FfcxhnQjBCO+wS$wa*;=b+3}#?m2sE*SA@YA zG+&tHq^fctqJPq3E-__j#+Td@BYGjPB~qo6$1(LwQ-5O?2iSV%7;pdFo-#-Qd-v76 z>DtyFRNKJ{WiA=I(uj_!7WQ8uI7&M^jY}!qGR6&5Pbke&%j{OI4RHytp6tx-HXbW# zUZLo|zasNUu7ar5%4>$|S*r~aYie*&bqv@}<@=K8l5_gCGIx$2JW~nyLMxH)!XJTE zJihVapZ|1uxX&VeTk}VR|K$nMcfOU5lwYmH(M!y1A zsCIYdfGF)^TDADlth&S#bEDi!dwly+eJ)9n&4xl2_mnWW(^Orb z*A|5j@q5y;g7?HQ!mwRAhM03Xjz2&M)ky~wq`86?#uty~aM!oE`WXGcAh>`nXPV=7 zLqO||wMqu@PR^~U?-BE?dt`)4gGmQKQ3UW)(V*i#9WxO{<(>2de~g6o4cML z=pwq=dEx<>n)73vx;Zt6xO=TBfFI6+178kla}{{+M@&cACE6b&8EHHQRLfzuVaUD4 z;b(Q|{d0y6VfoL3xAz=cf+$GW`QcOMh-r~!8Fypo{@|2@zTMUvr$BLC9WVW^9t)@! z0Ct}Ufii5$hINnMg!wz(*w(DIsWr23O)SSDew4)%v+o_~7-yg;O~#lJGIbb?c)hN* z3X&{NoGuh84xPW(eZ1a-fXu3AHO0$e1QZHY<;7K1x3Jc19H*>^@h%Ti+OQPCaNpOvF)5!1+mYgI@-T~Nq*a< zJSJxxw4FKBAFGWPL$<-Rzr5wngN#4Q=(%=qd3PRWPtOd6-$O(gRoAqDJTF&Sk_sA=#R6cq3PxvTWBrg-HuA_MZ8 z%^Q11VsqIn7|3FLx?lB*jkYe0G7hTTDXNy&ycn!xfi*uUU^!h$to2ao)>{O1~WNN*|7WkV{S z&oh$!6{7!lCsf;bZJo=*;{2Br$#rD{$z!LiE`-SOH08ei1{5A!3AAROQ!EldFQ`;; zI!CA`iXooS`rTRFgz)?_#U&m}_0tvq`DXuD6Y8ubz0CBraQ_g@Biph?D-)_HclNx0 zH2WoT!iJsuiU!Vh6tVfEk%;udzRd|O1+D^??mB!cliF5~WD7{c4poxM@w^d_yU&%o zr`=0*B^K^!0gjw!LyR41%KBxQWXo}Q2e<4}j%z*cOrn#lI4hxLso>jmR#!w9rAOo- zosJJ*2O-d!t_$BgnJPE*{dcoIM>F5!xbzf6*CqcA_Fd*$0=}BK{aURg=gK>6b2wS& zWJ~8HkP3(>8905#N8Be*P>T-BMBH5=k26SM`88;my$UJ2dGS0ey2MMC&R*Mz3D$jf z7X4-_`08$}?Zj==Yy^tnTf_!}0AIzA$=lNZoYX`H7NtdtYPUYxty~X`B7Vav#v{^T ztCuYvNm9iAph)JVLPmh?`nrEv6pw`>*;))!lYMX~z0@%SmPrN?m(~yCi|QXIx2B#l zi;kKtn;c>S*#+wXviJmR2cnFV;H#|jb=ZCq2?F2VN%wRbJPX}?@&cqSWTZvF=x*=T z)8Q{Av-HZodf^jp)kE1I^Q2G%9qY6?^7 zL&l!hWV#h^mdPxHGuPA9e>y^TUevsFE{_0*f~p%Nb-9;o^Fac7vkzkd9&`14Cn`I| zAm~Br3BYRq=OxP`w`hknH)n@*YFYM+P!emsp_7=Vbj$RtisKZMV@v@qyJHM|%H@+~ z{zSM1ch{mY%#Z7bK;)@*F4@omx`JozQUax54mW5gd^ovb&b zpliG%Vq#&qdrwl`iI(sWuszH|edBzVtDR z$`PoqamlYghTg!kn!vIWtGVUmzJ_wVJp(lP*z95uO_odd!BLuVDNgyT8f+d>UX}{P zHDl9xkLe@gm3Zg+Ca_sa>*$0jdZ4K2Tdc$VA4$AZBrkrarU`2rP$k-K6cy2@r0{&q zz10QjE}<^Ro(W(!_07tkft`w0;T?=}e}F)tXOig2W0E$q{A7wb=4dx`3o$7ZakoAzHtC45E>AgSOR;G!YAVBuso>10KF=`G zc!HNyOyoR*(#fEaBxa3i#+5Eh=mt&ZqIDwznTSND!FR zjgiBjx%wW5kE@tDcmIV@MH zCCiwk;^!0PLWi)cz=xk1pu6*sl5KfHq($rgcQQ~A;&oB;-a>_9u*UYUZW>Jx?*|zw zqLa*cy|nT!EC(XQg=)q)x+nS#lq@JxaqT)QxM)9xFW*|oV83E=!`u2$ zwIi2i%$O9wwFS7Z**Kl%<|`In3>DCbDl|xKp>D3zQ)xn({ zdvJR*mzGuc+{|hS{9UhEWGK1Kb?A;cCwF!2%7wMsihw}Io6I(|5axyK@osB_WW z=Wpy-tHE5Taeijd;UGQD#H2cpvp&PjxZQn*MIL|RS%6myUgsG^FhBrF_gF0vahFX& z78Im(xsryeM7E(lq=DES@R8J|{m9mS#6ARa#K|)S9B7VRfB1 zyp@lcQ}3}|J*SF(*d=elQc&|)5MeQqU^nUQ=p_^6l~rga-c0pK?S);Sta^M-orE(= z1)S&h}VSYFlsjh!L~OP3eTuNYL%7K*Ow zYxkge5leT1jSwaSPo>O$sD$3mOxJqf#W2Z|ORRc<+HyeE5vFJsan9_LCPFY8bB#aH z-a#PamDUby5Y`1Vz7uMjWZ~%0$^x^wzyN8hC=3USss{ zFevc!3kO*f21{;t|8PNfq3WW64N8s0C>LNkrX@0d7NQVUdPeq#GU1cB}zNB!%%@k@l z^Mp!FtT3=Kpgffwl1W$Vkf6yDh?_e_n>(HUMvgnS@;bIEF?ks+Xf{MoCpC1Fv{cpT zz+S2*uhKTZl(2jbTdJ<=@~~9p9lhs>iISW1;EH%GbyN_+j3vZ~1tkS2yd*PZD%vHJ zB`xY?N$NBa_mp0i-08$XIp#zWI+_Kt;RExHouvY59MY-Zx5h zDf`Zk<>KC5Ww7Ag!hxO4jM+3w22Ne z$Fzo4ppzxaUzEkJtN%Y_y<>E2UDE{`+cr;ZJ2}ybZRf;x$F^l` z>;CE0wR(>l-Fxg_qiR;oS&YwloKVNYsY-OOf6~*NB&QsJAn-|!%qW~CRq>2v-LY@Q zYBS%`Q7fG1fo#CVqb$Ani?A}w&0rz*($c}8t@PU{+-4%SDJPM=7dh1op5 zGkN=Z2#3EU9hOF$;znDPHD9ec7vRastNI&EOwY?{Wh$R?M}L}%I%>{QANNw9+%pew z)l#nd#b-$ys|wkefbAN9-%+S78E5>uI?KDUTE63*u47%CS6*b4A_z}*iAi+f_YT?W zb*VN!3%+W#sd&`{qO+ zCZ?yu=9d!8Tv*;urv)Aqv&;pUx6)C~8|ME0`wT|Mz0m_gg^?8I`Myig^8%DZ^Jo06 z+=T`5*C*014eJo9x6XAoi^^`_CiPOqL3v<_HFXLo4z2WI>(VvU1XW_WkX+we1e;`U zPS8tzXNTDozg&2QUcaJ7B&2L=Fwt`$aHt-RG;%ni1sY)}m@zDHJiXnwb@EMUlv-ai zT;COC>&mRfM>EZI`1->7uMCmV?iJU0btYepdO?9a$>r!G59*I;R_%2qwq^R!&;Q*D zFBm?fl-FoY5#w*BO%(-uNhfKiGL0gK%4a4Z%#n3vcE;7Ed}+s5gE?)Jw01^E)+1e> zW8PHMG3vTOqRp(cioiTrf*4)AEU1ByYE z4kjCsRUwjvZm|O`2GII!w_vp)`f?%Y&?VgnQ@mKiou%3*ruASV3G`v~Bre~SXrjOy ze=L8cLvTSG)8P&w8!ZP3T_)QsKvk7IDM|e~x>co#1z>LE$yW}m+?ZI%q{}Wp)dV%j zEY4!$Dt%g@OhIbrL0AWc>n|-7=uIUnzX=m$ACc4ca&4#ihfMLkaqKeMT-XY=9`598kYccPHEm1x1M2!$J;=SI% z-)?)!kk@Ey?(!;&=k>9{aKc|KULl;f%OBy`UN^pOw(sS`+Bu&>bdaF&3mkbG)b<^Q}XaW zh$e?3C31=1zkH=eNV2V|{PG)ecu?PfGO z1-zkTmV92xPO|pndYDqC0PqD%@gXdbu86ZZbfl8SO(~OkhLVHP7uOtBPr7U)B)6u? z%UWbYvhZ~02dfKr0K}#^(RY`UPUvfS zxrRTYw{D*B56+>Q9v_4mctR4}p9u2@yZoxPRJncNmWl8>cb;dexII&j3OLx4l#go0zDYaEE7>2jFqdGKi( zlKUnz{B&b!HL7=OIb~1S(X?>BW=VcJmnM4avwh>{Z^0+Fw>(7XLP_v=j|I3D=5J4M z+?|rq9Rh?YCgxB{7Np}Tt`~v{phI2b`KlLMw(cPM`HtjMjp)PjL$uLs6HadTzgYAK zCeudtEW>!|fy1mVwO^nnH{aNJ_xKzZhiQt0;YXZ!ih(XKz`9 z`BKv^#W@h##3#%mWv%i_4Ng>vWSGILT*FqBf`WHG**e_RZ+$ydl0AcTpAsFf(VA-Q$Q6x0ww ze?bIPFh5k&aH9u0YX^n%{}$bbl=}8S8VrDCHo2CmjCwfP>NHhV?XA|E)c9zes$2fF~TaFM# z^8e5xgJt-WPydQF*^Mswd*06`lsV;{25ln!9Y~t=o}7ML_bhrf)0-UmQy-NKSP|Q< zKPM>G{f`fuG36wMWC0hrmJG}Q<=*%r=L6K=+ec#UB=NNv{Ko7H{SI(|by5H>=UPlJ zoK|nc#(`@(d9m0Bf2e$B;4MxqC2_v8dH0XW#o!D3hTu+ud9FAk; zTIX{VNVTEErFZ6UL|lk9s*?t%bYN@)SJ2pkZ+42y7Xoku(Iz)so|!z$kXtRXNUp-b zSy!@1stZ{hsVOXNRSrk1H$TAPjyfmIfU=Y^wm^Y=mda~l8gkO)Y2E8~Vo^j5S)CVFsSIgq0ukakf1|F>v`Um#MG(B&jGbWHodiOK5BOzvqe8=F zW^B#ZVzW>CH`7@}wCN=8u-tAP5ba8g9@?O@T_l6TWUQA-tJC4rE!-}oZ8JM%^p^C8 z&;18j&*1y63Xk~gVdQ*AP9e=qqM@X+vuc~vX6x4Et9JGmLc`-@GdG-zMecc477-s2L<^(Q4ARer1)kF-E2>-thN(uwR-IQ&B#s}ra47fK z?c)3Qy?IW)!Z|##Wdus@a!;CnBhwh1p(v0F4nuh*LTP)9!SC{FgqSLmxx?};-6V+o zT8_KmkvTR_uhc}c%5~kkR@TkdxvFHeSC4b$gO1NZGk4WGJnQQ*J6aWh)uymLAb3f) ztKi?JMltW9jXaxjgAG_>0MDZ;Q2djn@GH={8GcX3LDak3Tny zI5R#$IHwMa&6V=FJl}Aq<5hK+3#Do8{uWpI>r@+gm(_BSk-bFr1Rcl7YsoMTYp$!XXJxxr?z|`(asdUPW+m!paT&07a zUjIb(x?=lYSD_6{i)(W6IiKX_YvUkk z3LfSQwrvV*aQHcXq%*Z(lTr;bWDrUQ*JaCJMZu6$Q+_OwG?O={mMx-aU9e_vb_2eR4aXD^6zhyjtJK+gTR1q`JDg zXJzKwRBQ0Z+gP-(Rqq?mJua{Imh~9EmN$EKr9&gZpt*c00MUiToz%1lbo(Ew}CgruKUtTDDzOPFS0*HFti@vp~JyCId2MD(V z_yEsi&1}n;qgl@itOEE~3n4qQ`$QY&=0htRWzhB|)$7AXVxMDkGK*I(boS>lG+ukT?h_!EW&Q;qT2-vjSg&RlO zgsB6Fk8}lt#umHCW$S((JtdcK^OVM078JU2`jAJH41X>O71m8(jVst`W=5(cR-+ND z0z~4((+SH`l6*E}?soz2S2ydgj9*+zi$34~RgoGCP2bvn@%3*?V}T9W?0_eY*Lp$? zBN4r9P60%@W}uF$Omh^p1upF=hha}Z$^0TU%ho{5WyqBQ%IK#i+ zc87^C4j8hhC{ONvHeZ0N1}b7q^w9lcCH#@{&uO@){Pu`>5FdQ9sy@KNV>M=l!tTi{ zqhfa`z7ae^_D{qVXbEx-WI$vkTZ+0%^e=_$_&lB+ zA=u6S;J;B68c*9{iR4~{_3!TrLlHvW8;tJc$>LxN%&&;W34!i{)IFwTd}rZOrv3Kr z6G+n6Ev0YH+gi;w-`=cvKHAK3bTr&3ecsAC-01F@T|7IZ(cfOO6%)d}vgxF|)>M$Sg zuX(lkvt%sgW+XGM6&n+J&NBzEHAece)9ovcodt|qw7F~xXb;P2IbG$!pGZu|wrR-` z&Ac5WV`vKnyu;+4h~BW!K-|!L8+5fUrVn z1kRYVNL1a2MPB)DHLQ`bgxvjUsg`06lpG2eiZ4Fgz?5lY60gqan!svlIWbSh-p@Bn z8eRcRC;e?c80&o|R9H}aLq`{=>>9r&->&hGa&?EFRB$n8#!F&ofp`{s4`b8*loZ=d zY_H}X#COaz=~t{_bvhn@l2+pYINe(Wvf>7+(ox|-88^7D&~veiU#D&-p4|4t8dTNU zYP?vTMkqG_f)nE+gEUvA22*sqDB(XNQ3nfUFhjQMK-6p)P;XpsI`GI(_zYrpY&6ZN zD^s(?t>2kp$c%rPSi7N>&m$l8oktEzu-|TcB^_exJ&HMTX-e$MM9cO3 zi6p{5OAyLc1Na)I7i|_3iLb>$xRR~+zSB8uS>?_~aMop9BUA=)1-`bI1p>g#OWe5U zi5u&Z3p)<8B@&br=3Gu*K=!b;Ex!dFu|dgH*>>Nd3l4zO(e7j9GyEx`^Ix$>W~QSB zzOLVQC{kmF@YCJdFBB@V!s5IL1W5oecHSvW^7+}5Cdsv1LUp3|ngXjXS|h3^rNx}2}_6c@BXp0~#6#(1|Lp`xJ+BR5~nGRH1E z@2MhXsF~xRsX7d75j}={?ReI`E(WXsl2vJiCFJLL_6@{OuAC zkslOr{u;tFS8)+SxNKo9+P>qoqUP{EZAtX#KH;b6a+*t^`Ap`edop-c*zljfy|#6z4q-GvMznCG|#k*vA*;rPoeZlpxD}T1dU1 z;w_$2^q?V`Lzcx*IIZ|b`&v}?V+v$F%u9qchf*f-OJN6)6f|?^ioDT@ek3_Y)ggX4I5oNQpFklU;ZJM`Wdxa3JbQ|5fAK2u1vA|3|Czl(S& z4@82T`ot-!AJkz+6x^c+Qh}NcTZbLI|#%|rNuC6&A zqb{Ik=p%HCjf(8*%{G_js-IRA&E@4Mp7G{u!1>S&-hH+zkM~tccYWyIBgS51(_Xt6 z4fgjr2{nJ_mcT~B6q2G1h1@-)+R zW{2fgE*abhtg>jZ@+R8^E3g}m{4SeK zGjx0b9-!;y)6NU@z3x9-t)}Y>d>!4gRJbmUYt_PA#+Od&OPW49+ULGx0pa;W<}HR) zX|Lum1{-s7=Hz>UMWmleJBEQhCbR6)>yy{X*^D>XonvrWN>nR>6)j}*8%^^0!{7cI zYcsWGEg*74nLbc7PMx3XyejEzoD2U@Lzjr?f+nS}ud6X5h`_EJIKpKQJWxL1<6~wo za8rA_r1$Ast%lW4O4e8OWOgZ9_X%TPAK_%A8ZFFEWVyYX!s3B6wp$|2_0ZC1TMsS9*K7#83%MQQS&Jfe4>tnSlve z_6emn)AbuU<;Y`O4RcOjpb!3x@O+~=L}vcvHTN6+W($T(C)K5!$^HZ%E$z5Ug2d!! z)!k&408F;m>x?s7FV|`QH5T&wE%W&TT}a~F{+5K`CNvLNREPqhg=#I*H7EF({@(#V z35ZBDi`M*I!*%&mx)LL> z$pw3TOGFGuWzZ+udxkNiB`Sf-^{594f2S&x=1?!o!@TkONzBeQ&{aaIL|QS&%Pr=M z6OQ#hw!Cuq0)b}9K`(;KOta@z)LzkejfdzmCOeB{lmPybu&{E%I(@ zAM_)y^t>QB1)}#QwU_IB<+MmK1~j;~w`TuUIbDVoR>|u#U8m0j6YVGfsk4mBtCM-? zBacGC92XJ%TlR?LE9(P%vhtQx)e5dI)qaoh@J&n>!Z>Q+Tb)NEqTGf*27wnQj@JQ`Y$$(XE#Y+FZRh6h0|cJ zxL-kxEwV=8TPCP}$^&{T5=|i6|6o`^JWM2N{+IhEfb%Ds-V*Rn_{Nz0eS4Z?b8rsY z0QGCW&k0OpbNB&ujvSFNq885jVYa7Dq!~1ZN-$rh>HPh@-~3JDnK<5##2CfS0?u{Z zf{QHEAw*Nl*3vp`K#^hguqM#mJ4Ag0?Cwl4fPK-u2wsp`c zmKtfbd*1ma9b2HQd$>~c6RdA*yTy!)e@5nN!DlP%R)1TauOJP8RJbd0Gi5y??QteP zlKgY^1iQkmgw#oP0`$O7c|vo{m8RLNtzF}GfuF(H%x_q>Em>~+VESGVOypm!Hle=* z^h~vg6}oqJ1|l?Y;HYaeKEkFrkLdMFa_iuw7VfX=l^3O()q`@7;7MGCN>tJvn;86Y zbcqRS#|%PvBRNIoy(XTBrAXI`{$BLM8IJrtV06IZns9YUw9Ms|^e1^wQNa7a52Er= zTZCLwd5m*WX=<*(X*_u(4ra9!Ui)NsK*&5RFsH^rl)VIIO>*8U2$`c;$+I!8&{Qy zpEQ`EDC#@l>C6If0VE8npk*XJ;Vr8n0{5)_T)Azz(?Ep!pj zV7{YXXR|p9W#FXd`X6u5Cp|lnbhs8`+H~)$mafU)~*sq=p z0VGmfZPBr@&m^N=PZ?|(Mn{aq>`(GxYADjyL@_yPGKxA*xeZQ%; zwmP@jpjyVPu)$eoa4IZ4QX(5ody3J0*k95}u8k?xT#NX zEUa7|i|1=t7ausmrM#$nL@gP&cpv`WdJ~G?-}zb`gnDFlo+h0Zl)egnRH8o$%NZchn&wzuWB`9AiyUQ+TrKR>5^ zKJN9xpBO$u^1mHjp#9H%v$Xr{)!Dr#3}!fK1HS(QPu{TgGNv`#RD1e!*a^Wsdg(>Dd_-bmq91#x^2v;m}Im!-I? zrp35i3?dv3(-ItaQ{o(R3oOdftd~vZVpFMWaSBhJt=4OC$J%KYuLAF}WARc7$rFBw zWW!8Ds>yi##-sL`G~+a%F0P9bbjlR4i{hg)Q|kpCY%Lht7kIqYF(pz99^S46kQT(uWZO-zt;9=sFSL* z;)Erar{!(uqLzy}PS5-v$j999`9zG(1|`&}!V~xs_X<0fR>Bj8e+C$rJ6jE!NAC07 zpWq}^;3RLYzZQ0=Raaqaro8kK!3lcal8UEb>U~_E^&uW(e(MQI3dNmJ4@ArhCcL3}378HitSVSDPtl2N%uGrAyrDt)$Q1e)0b2q-DQ@p`jJum^#39ujOK&&p?O6E>HL=5Wt_p|^<1V@nfr;l1?F32uk=c)l9H zT_l@#cIU~~PSjp#TA*J(&9+9N!mT%$a%uvvY(vVX2T zrE#ikiY{oAsRY&L7EOF`Q~^uOfpB2U+(|QBZhOA=H;FtTpVbYNN~YZ+ih!{@BC3c+ zX6aT(hC$i9p0*$(W^^NngG(*@9H5xi{W8s>47F>eLe^1GZgj>Vrouc;t-HZn;c7q6 zO`&p%7tlAUhKXi#7Q&rwIg?P?pFNs}CMuy6GM5MkcyPVhEW#@mYbV7=0X{mXI~2ryjtAOb zrG|-RV?Hd9BMd%+P$sOwiZ6*P8B%{SE8Op*7Iey;XyK~1W)CQ3GU%@=Fzs~0-@Nk5 zm~tex&&8f4%d#g&HwfZ=I#HQ$V+K4_&0N5z(E@_AcX+3F_$sMD;S+{Mp6EyPj zsm#N*6jZxlJ)SO#1_{Fu@KJ9Vlf@FMdeob*CGaOc9h~il1ZionC6u*^EoVCul(KMD z@MJy}mJw*<1aFFZr2DV3Bg`E~aIM}k7{uD_-vfRFWQc7l7>;kI_$yZI-zyD8k*mHM#$^REZZO-@yAhSTST>vysy~IN2cGcbAP`1#a4a@!P*>#29Td6W znz-KtKcy2^P$I7_U+n{5q^6$)NBgA$49OL#G?Kcx2spzeGpaR%#azn7T1(Zr#x)@D z044indaJ|;QXo^;ow63HwZ!O3nYk8r#LqFI;_wBY}4uvlC z4a6RA(C72UP}%A62cb+KghsCYB25HlQvN>DZ`v-NBZ0zHr~Cd0AIN`sX%pgG(9(`P2U~}lp0!E;B zlZ1kS3-7s(h>>bUrrk5JNh;KG5rf%Yu2*&vWZi38ZnAoFYkhBsZ+!2lJ-&#)UW-2oU|^l> zp3_Yr1zBcmX~&gxbl6z&pUTXql8o1iZQ7d;Pui{Z%#xjr`v_!k z5sdS+X)&LY;Df>o1Yzgc=yX_iiO9M2d~@9}6oOINkO zauDSi-|o5MuaR_aMIT5zZ%kd4I>ikIq&;c(6CzmK#Z!PkFeSb!B0^63wu@)iLIPeY z(60_a%t=b~e#A1)4G_e-Zu%p(ufLzcH~s;gf*)jghQ~kb%_8>X?J5KhXi%{pLAnMq zBd&eXw9X5!&>tZ+s~k*6Y@ui`g9c>zWojd1v`*%i!hGl+#gVmH36hxO5RkhjR zk77$+0Txcsx-qUfg8OnK#y@_PRT~&Ay>u}omc!tOh^|}i%OnXB%xW9QkYy}cfw!81 z4^_#~R!MX}TcJ{#j*0w74^VFWi#DIqnCPD;v3RL$Q)FOI*ya4#>0wgH+H^91V+s<_ z5`~*bgszGEb>Z7446mQv*3+)oNAv6WPja8G+(qTS^@wWyolxJteLx{ddHQOMKQX7f z0(8+$##9!|N~+x;4|N1C*t79*{rrFBs`1Ky6d$O~3JztbE5(mLakY$3Ng4;oa{jpHAv;EoNFZh@65U~ zt-u7xJ-?D!>JI@Q!L^o;ld?QMN*Fa{K;6Bj*mV^&N&Qyi4hOT7%@~f8t<1#Tfc{47 z{-#`J>ws^jjXo?(H@?+tF6{1cFC{rTIKC!w|Fa{VJcve?aA&Gq4y;c1fMREPJe#l{ z1G}m`?~cSGHZ0H+b#jjCMugU%A~9opyfIGHP2!;Sb z-_6q_J_pr}jrQt8^_C|dVaMwYkKzZb*rnP^X5hXN)TFgA`>P-j1TYBvHIi_`cwlRe2BiKLt`(D&x7;XZ~)GE#5HM z`7f_75A3AB-@lONE><*cq z6ZUB2_Uz>Kbp&L9DV1jNID$w9Il8{&Dk)0`49?X0&SeD|0IL(PMmNmFyXQw2ygW?E zM{@*tnT@;^TQ49}ku~aEnu^>OjQos+@wWnBgd-_ta(Q#5%D>DZkDh_1)dnVWUQ%Wk z=$9J__6I4CrB{%q&av*NVbzNO{r5Pv{!S0bax@bWw*3AZ*^uLR@wU)$q%G~V>z538 z&)557f8&By%x64I4^hymwf$$87J{m`;|bp?9$%B$srG0Fw+71NM_bN%yJw`PKGy^V zq4If*xD;0{8l1zUMOge2RNQ@Y?gbL0+SLI2^yi!0M3Z!0gDVx>vh|LG#s>l>gT;euU5Jc4lTTRG6amupd3gD59f|kV{Duz| z<9(l@fbgf`r#Xyp>Zeua@*Kc zD!LN8mOM5yUO?8Eg6)ZbN#Ixhzf_xpDv9S&yGr^3;h(ui9pU;;u#vPXFg zlzRkiAGDNLv-U$h&gb=mp=zJghhb}%a_^h$gwZZyMFQ`35BlQ-Cw!3@7vuCH89OzvM7w2vL7^icNOg>7;AA&V1)<`fv&a;mOHv#& z8l~PS5lQ}HnSjhlGX>w!-~l*a^C7tu&GA;Y|N5a76 z;!1(e*+W_CG0fkK?Zpk6CWBLw^p|qH;>0MLM(GYQ#10GE+~6Sa2fim1vA>+@xISA5 zgg%XtELn5WOYIK~Fd=j67E@J>qjC5n=;RmF^ zbfe<()Kn+1Vw%Io){6wAQuba_KFy)cj)NH=Pw@SgFQ?a^bjglA@Zp?d`v-UhXpR!9 zIcOUV|4*7%)!BwMkaMCzvGSYky?RaOV$novpZljf`;6k3WuF2fPmi#kzpLl7)Zq-? zgT@EV!^K7tR1!>KH&sX8$a?bGSZNh(# z^u0Ot#A1eL>-^jP;iAg3umBaPz?$Ry(RWj>H&IrKj}12Hw?pCH56fB`=*Jug3Pu+F zq9sv?2w>bKuwx8v~CZ z#$5R5Jt_)=5DtgPE}|3_7MtB^jtCY*S^d$D`{!K+@-GoY5GD{A+<%!KiMju~@X-HW z^U$B{&_5A&e-vEKcnzt91oJF=px!lAe8^KHvTT-h<@G-7O6kgSv&5=RPQsospK~Vd z?Y!*0oj2HwQMXXru24Ic{|5QcUr+#vMNSFJsOgv9&$MQmAU`w+QW($#dbmbZbcnSI zG>B|82t}+&N;q1C>7}war zA`FF%1*l=GT8`CfnsY`{!D+WM%F8KZsn;lCjr`W6f@_Bc_0(%2hmln4m5CvPa@Kjk z1RWN!_~&HyR7$y$Q`f^4Dl{gb4=p5}(+MamhJc?_q>CP-o0613P}arS<#3 z+I*kluWF=((W;efVrn&7cE%6<=ic#EC64w;Y}J-J^($p+@Hbh0SWK6&&!Y`B?pD5t zc$UrkvNnK!?h+HG>AE?B+@M~}pdM{i6+0Kb9T)o}L{cR!ZmNNlG7z#;jp{7oNHCsHuyar${<32HhmWS^7*Y^hthz^-Fi4L%T`?hnWKc`q{@swW@162LMTFLa5 zq5+*948uxn)2jF{F^5>1$?loe=m(<>ss>Iw>t*MEgg%qS3#y31-Pt)iqre$!AuKcgwz#?2kz z0%gPqLdA!iKo?3ODXr~o@GM6puAR)v0gYAi>OjD*(az9+!bfA-mZj4Q-;U!4UQ|=l z-T*p4d`Pb8FnuSI?fSow_&>a*%p30dORNp!B);6{-g^tcpw|ui@q)LYO)AZnJh0pe zR|w=1F8NpiSHRSeU??!|un}f`f}bA2Sf+wgvkHS_yO?c1W53&f@u>c=a=ciI#xU4J zXZwnn-Y{V5j4&W^HRS~S-5&NaP<}p@BC2y_aS- zTijx`cX}$LkP(y&$UdALOIW=`z;myXjm~D=n9d-B%5xXqG_-4$8M+g-A;am&l0UP2ag()Q2AJML+s7vfH5mV8e@agbQ^32~M@ z6}cj24sGqBGs3S4(M0D_m*v8H#J`ssQyXcXb?q1LN{*r|3b?3170m*2vL*|AJ%9e1 z65Qv-G?9*XaHf>G>Pw6{3fNh0%U5vwPt-1b27k-t05Lup6DOYqa}qf!`n4oi!TjcjdJF~>nO##VL2}9+j8&mx zelfJ9S^41v0gl<3FqvrxcA8^8vSU6%Yu{Fh@5+hayiTDB@>eYKe)H3$Ssr)UuHjh$ zx0w#kD{j#pyDU>MQZngXZG(d3I^Z_=Mz!#cl*=q?oauwIiy~++*vU_GeRI+TW8*80 z2~jerx!Y1u^1@qH{B_FOQcZt6yA`HsX)nqCcx1`UWWh<{lF?RWC=QpbL8Dw14Wyeh zFG&xj&k|puS*q%lFUGQ9YmtliGZ~D-VgD!(*BKu{4<}D1^P|)dRj<>wyjDycRpKcI z}$pM|zYp4%fx zDX;*ywpy6tPHjpC%%xenF3!0KrQ5xexd_rOPN&c!%wx|kP8p+89kfL64ANKYN~NcD z#wqSV6iC8TqjHk8@=|2!Q<>PUK<@S;4ncQR>Mbx~cho`- zKZLpma&cS#2lB{WncC^KjNVr8QYqU$se5uxZM2lFK-35Fn>gA3F3tP@c~JWQd9a%z z*Ry}7VRqA9fskU8dnj*B)S^0B7o7i{ham74qaT#~SE!(raQMp+`0n_W?XAiTqyJ_Q zsb&T$)jGfqdGSaG=mxl3<-x(P0f|_j`2}h1MfhYN@o%I+AlDbt(u?rQKH~0=G0q28 zcQgxPT$pS^_Zc4QikQ#li(^N@_4j@}jDmT}k%ga`GTV{MFAGDS*&n>@DYaJy^`J?I zBomcoIscaCP%M@nJ<*eWKAj=}v^a}e|E&zfB$HbI=x6z{p2|Rueypnz->^#vS}MI& z6!EDS`ggzn6-4zWT})b`5d>WiNCQtflvx|0?WUe0LGlmLe>0F$hr?!nwZcTeAWqB^%atk2`nkQKQu1pik1+_6 zp;0DLhr3862exJ-gwcz5qr_T5ExsAW4;btFIJSEcuKR(}iHG5z1#@p54jj zHa@^xzkIzQ*$C4L1DE8@B#(Ql@4vl2q(YNDTGNF<*y}Lr*luB7u`on_clfC;}mI}=8K^rw2&%7 zJbNz4N7zFH^Q)>E_S?!Od=OQe4xj3h!%%iEZf=0>T@9c7xLj;iF(%$UaiKuBfWSB_ znP4!ol)s8q>|+@@L)I5{Q!X?g1}13D9CNl`Q1 z6avaPZY@KIuvx9B9HLT$Lh@K_^O6REW`o-hr=He$Tyt_`Q(@JkqBUJw@>Aj^+kR!l z2B)@ava*YAdb^?dam7`u;%3}gw6aTKJLzIpKjByfMdj7Oo0QDH+iwZM`YeX=M;#l< zxgfB=Fncq4U0nlja#Z7AS1twltg+6CI~j!w9c-e6q>iJfo9`#qP9&Lmu^E~@l%C<%W1*mQCTCg!QVxj^!M z#6JL(=a;ux;?n)oOw=H>!WDOsYX*N9H3c9) zjG8&iBeIrZ-cVp?*Um1_$T_ky%h=*CtFY?KxEd&n8$MP>+mobD2KPI))=8XW(!iHV zsZ^`v?s$5`SlWU`yh~aqonS;`YdEHGJGP*$uzQxb2;H$?V%UVo_OtmChqzj<>q6;zh`XOZ^qLiO z%3@XsL&}b(!YYDI2Jh3ku{u z2epILUudtf8{nf5@wgL+4jT3MFOQB9OoOH5cJ8wZzE3R~m-OXgJ`ozYrjJ~E6>{fx z)gc)Iw8SvN0_tAsO7VO9o^paG{ZVD!Ha}+qvF$4u(eucAW%S%#wE3UbjR|@%iH0|p zCnH`#aB){j!yq>^VQ@fVbl@(I1OmxY(2y06DR(ri!U%@tlF^U0z*VWv?N+WOTICTZ zi7qDQtqJ1v!%5$e61a{r$juD|yGnjsaJ$rUrhw=QBO~PLAofjkE|b3Am9H0DDuD(( z=}WgN2Rem2T!Fl~_atubHM_Q3b#MtC)3&p8D-ZVNk>4;_=Q()btbVf!eQH#Kzs9~X zQvBhkZ*5AE6ZTuV>(M@{O4-Oqc5KS~S-49U>eYN-OZDAttDC;3W6%?~^b91-BHs>i zV^xedl-ErI@pY`J@IDV;=WG^%Frj2~jdzsgI9{`xhgZ@o?E~$X1R(qe5WalsQRO zG2>D+KKf>~dcb@%kIVp0$TL6mPxjK2AkP576M||u%?9Bod<`G6x`%1;`1L~=il4A- z1bYwL`r!m~4f_9tC6RfEH+cry?5`QF`5e+$CsE0z@cpVTxBSK4i|LUxr+2g7mBFe5 z7G`v2HW9O~2^~kAv{Mi;YVdO5$2H~~o%aA%$O;^AfxMD%g?7I;vCyw9y`AM%nT3{= zY#fahrG{^D$aTOdc&ZUre~e2}Yxo6Z(UQhu&mO3!82kT_ z)YfsKpP87(bLN=0JsxT}n*Se(2EJ)oAFbU8mN*3Khc^TE|27l#6trLyKOHR{{Vsi~ z%$++Gea8kuNGz~hQ_kBU)PZLrfsvfx1u>$qk?HBA7*KCb{;w0_+v9~1 zlqa1yN|5EA3{(Q>U(;RADmN)j_(Cx~&Lv-EW!GvX3Y8l5fJAAxD5JWvtUpkK9KAT% z9h#&X#XL3f-fz5u{)@4D(b)J7_JcByBGdWwU2GWyu1q}ZjoHvm5!dpl!*1b2rqov& zaNwXlOqM9{?fO0`cwS$yAGDwbtU{pcT9?{UG!FAxJxR)52+47Y z7uq5bYo#79qZZYW%CGNX`d4=wL+l%C;p?-p9E$3y)sgB~&a&F0zlBge2Hd4^GR!w+0sf;8`q;`M^y$y$1UbXEXr?9x#8ux&BXBm@HmnpLeS@`q&g zXrn9}Znb&!s%yt;e6vwE4=zHvn`5a<5m8G|kKZxa*eiO?*7nxD)0yQ(>HSRI?Tg$|>51u)g$-eN{u) zsuM)(^a02kwdQfV{-S@+Uqz?S64BqoSF-l;G-^?4dY||?T|w4vRT7QHk2;+Szsa!M zC;ov6M)WUmhcIe02}6Q%r2Q#vtuII~0stN^Y)Iii zUEV+vNErpyAJzU2aI%`CUt(LsK$OIVDJXnjm=ls#PsMl6&2XysSb=~cqPu+U{qi;Y z+s2RDlcRknoZnUfkS|9pIHl72)KE}eN%8%^a@Gs0KEDFX`IkY6$>eYPzT$gEKA1&? zGY45Jcoh#ON;6)~VmCP&D3AO)zlgs%cn}@Ks!Hbf%p*|KFlt6zJ`Cm(5YDpp6R|DmLT{tC8t zU*NmXtiZ`eXcAeRkzTI_1k}W{ggMA4Y$g03)M#S@VslC{xRd~lRaGixkc3QLiPB$) z{kRYr8|}E%2eN}m1JCzV~qY`HxwCmG^;Z&wzZc;F`o=!Wu6?toD3m{7hMKl zx+qq^5{85dt!17Z4Vw%tM;%>;x$fK1RQDsl9^sZo{RI$n@++HZ0@$iI27fCuLq?u+<8@1$l*6)>d^YIPZ zop62l;;7o7r7cQGA)=PHv3oogJw(w+7c^<3lS-rSJ(jWuIBDpZ(S*BOE8?dYA3ItZ z%r@M+8F?Rv8gSC}3AT)S(f+M~n9SNF>C5dttM|RKh}!#9P+fL0abnk}K9y+FM4!eD80jjHB1RwS0t< zUZ2r(O=`xxdR54=!z_Ftu~M0pS?f48{Q9!qRzJ13cAuqE(!Z!uXeO9IZ3FM%kSO5!XkOe;0AKINAq4Is>Q9fk&3fKisOc#77W<{c9 z*gKv%6*z|oI_%0DwEqArbpR8li6K^8GG_u~B1nDfo+IoJgR0Dtxl>=F?oH?{;(mmK zriebivl+7PU^e_Bd^7YrtV~LdCppuqsbrp~GlRlxqCH&PIAg4()Lb>+Dt!_dN2%ygiLi^qOd9eR=395B&02X zpE9wxGjMJ?Tsur`JVlB6Y6#LFeC zIdDM(Hp3ffI&3vuc#Z(|QJ`+X&oim{=v={*oALoF*i%)hfRM7*&|H7>knOJkWvPMp z0H&MnX$=a_;cf4Gpo5(7r7>HU%XGTf*ze;5QEIVFj;GOto(^1gqmr!hZ^pVAPoL9= zG2*`sw(n_&wVVK_jzggG++WBc5RW)^lW{*i$C}F0ZVHHrAy{TxOnnU~L(~$@b56kUPAS=iuvVjZkI~kF7MMp9_Jr$ycs^kSz^N8C;+zco%}G zwl}a)6&*}f{fV{CyzV;E8PsOguyIt&;HuzHfD-h!=m(%={Ue|p{kwqD_&)*4<9`53 z>fZrn_kRm0HU0uGE+ubF!Xg9yqM5|fxtrB+O`MX!0{AwcO2%)64AmCtbE;=?}M8GU5TqMX5}K6ET!J;6*0bbxFj$rz+~PFgrWup z2~+5q^?N#W1dmktq?OP-dLT`pbAWJ%IhOy|0_L-~-tgz8S#G&+jR^QV^!Ev19G(bj zE`lcd@w(8xAncw9N-lyb02iCMzRFj|KJ>EU)p4Fef-T^an7ptJ(J2%6yFEx4-x@LS zFp$R^Q#w9DlVWuG%DYKy_hi@gMxp-^Jn$tI)GnLxui!;o+Pnp1|r zBrI5VL|w*G`Rs(8RpFtBJbNn~Ids1FKi;Ty!tcA4R~$>k#W8gJ=5htWDb@35Mro+X z+^U48Xk~v`#&Hd$ea_@WJ-JdlNn*lGM7>Ry#50_-C^DEhDuj|qpF9;Hkw_(HI2^NB z{@#FjUf8JkENwCymeH=Qu~jip6gMA~Gq3$PR7tQ$*0SVX z$G6MvRX*Zd(rozFkw?o$QOBikl|rgS^2n(iX&kA4H;o$l#s1L z0o7)-O1`5N(4~B_#R6~wlUeZyZ=t$clA+u45|_zvnQrr=x8`siU)y=15vPNNP&}1Y z`cteW7O6^$k|VjVfGt zOO`6CJ_2!fhO;paWboDZ!LllW8$y~H^-RQzyRZ*Pt$bF8?lsZ7;A7cO-Yr`+8B8$w zd=REcT}iz%wJ>y{0@9BNbAsQK07&vO`1Os_lcYEBaSc9li5<$whP#Hk#yF|EA~R$? z)J$Q!kd)j&SZIDS^Cc{+21z~IP+Yq*6FM(wVq1-f_yeOXtpza3mJGOgB?ioZpNNvc z5yr$UbvKhK*=Xddw$|Ll?4z3ak}A#YT$G84)S@QCc;i5*p0$dK?5c~&VOVK;dDFJ2 zgGdp_FHQ;PMOvO((G-0|!xZ`rhzNAhk^9}QjLF|bltQ^vfpcDcVop6=FIeZ_@Y{Op z+e~+I%ED5sl!2>c)gl|cn+2jIL8G6*EIYKrxCKpM8Vn~qJeDU=&m~6f9flb>r?=GC zHMC2kj);?Z!ug3sw*Levu|Hk0=1%}cnUfpfK0`5gNJaZCpmc2;p2rz387Yi(-fDxX z5{{H(<4}W*+9=G^GL5earD!!K88p|Os^%H7#T73#qhC`Q=Ks9jB0FGsKyg41Hb}2J zIyuI#_12x#Oz*Qy42?npM-#++aG-~AA1Zc>f|Gpz;u@vRstgKY*9~)Mo9~A^ENnr8 z9h|bP#V!>b&C*?*8r>70+*hv8TLf?WfVq=H&3f`cgD3$Gmau>^C={Q-;&ClqevT91 zg&;3C+yo&(18_c`j>&)7Fd4;R3#cZOb7u8M7tvq4JpuLI z{$RiH_fqLPbS44mB66>QvfOVk6w?#s5(=}};4gSJZFaZU?{xbwmtylI zEzf|#;Mn&3I91n{414lgK*Q-lq!08Vl)&I(5MxQM_YCluvY&F3IrD%tpUqC^da1jtn zu}_ZV9mG;m_%4)jp_S7kqS<~9zqJ8)4UrN27%-|R57eM2)&W_cKg`<_4A(&>A1!wQ zz8ejs7{6iltQEk1)vpl;M@1Xy1Ja>}4xyh>XbpHc$ zyo2m2D^{;C0}o7X6}I@)AY~qUh>5ncH@KOsREG_>u0A<)oXaL{e+@MLjAM6g_v(k& z?-IlrhP6JfAAV}Ye$7^~hrNyM%*oTjREFm%{k2|_xH-iQQjOS7-0;&qXJD&GMTO*Z zhE8&}7M*p+II0L6->EiQTR_y&)B&mfw@kA${k6As205@KR?wX)6dP^q-7FlSigQRj^-B3MSF;k3~V zf;UU!w;+LL%M4qE!93Quq`pxOEfKqlBAE*$*P?`6=rAw;{q=iL&r}V2ceewKdX~D) zHaRO!4VGFgh1pQ2Gt2eDMXwyc6IB)6aZ>Vw7=2CmCugOD!UlCM(^QmLinR@jgfEv| zqQ3pBL{8U-WNM+!-j}P*Qxik)!(PC2x|huhTEVg>h}2-%dKOgF2|G&Dee+2@UvOGS zAu3twne_^ns(s1r&{nE9|EN7{KD1@MFXDv+lwwopguZ`I8#!RJiBpFuf;)6z&WWYZFHm_VJ$#ee%kCZ>aV~_&*mFVX-A^Ze+Vc+v80C-G2 zLWWwP^jZVkg6*MWCokpH0wHT0j^|6=Makjh=Pnf(S#PIAjs^YTWYWo!)C?|-!eR56+;1V9G}vl!_uML4^f1k!%;B^4UacYet&*5myD95PM=8aA=)=c95yA| zdCqtKndjmMN<7Y^gexH0!?28@ZTk$QQn?7K(uFrH6!pr?BIxjxX>oX{ ztL`bEfIpj@zgc$|297;Y0|g?emkqXU(oh;gZpj?WKcpc$m+=LmIib0SCQ`b+TqkW* zi;HM$5Yw0+pTuvrGL#tsa(?DGm2zy$e8(e|-#d+Z3s3bq;A|r<(z#hp9(4AZRdRbD zD?Xa8lWO?AzdJMwv#oFioUHjqmzSM5mE1A|;nF%_7`KwQll0_8Xs>|d)y+z^pB6Tt z04p_5c^7WD6j+MozRUG-UoM!sdp`d$phfzca{JowpC}Rk2TE*;2B5?k|A@fT*jB`If*WdWg4>8UA0?$-CkdjK~v9N;Fd1Us8#bw+0CL~ugL zGBSPzi&lh2d`y&*#b-SiI)aVb3>Kf| zBB3QQQk}MR-eX)D(B*X(?0F0eQ&7C0rN#_FBST{Z za7cJ}!N!eA_?{7fhq!0Pi7@4OZet(o=K@^GTwkJG-xw&sEny$0ZNc5nVwmDu1Laai>^@{L zVh!{H5^|Upz{B+MOOe4={ed{DWBcEMY?**bwHSgWd1$U&;6stUdJ{po#kmy5oR-Wv z(KV2MdRRhiOM5Mudf(hi9B~;!R6ECqUQ&Ow9(*)`*VT7aguOG>h+ZJbcv0!J|7{po zD{gG}dJ3g!_R{$(vTQ$6xb<1s{B3Zw&22CCh;MDX>reY|qo{oUJ6*F2#iC>x`CFzf zXqeD5TLCb>g9jHNqIqfx7FsXh;RgFM!7#9|q|(Kl zU!xuj!O%Mrvtt~s<@K-la0u=X`0$AAKjXs@p#MvJ*!%DJ zP^m~T?FT*_t@?T2x@2g$lc~f(uQ4-U=cZ3I;0F@A3&!buB!&@r2e^7qD}dwNmJ{tD|!>C$buhlE?MDC zX~=e@FPg7n6fc-a%NSo&i2;%dc`E5*sjx)yuB}UDp#8@v!4!Jzicpn$@zzWE(P{k%cIY_um+UYHbUEXi?|;Y+@tFS?>`?l{f6ESS z>HgR3@Q~ndvqKZ=|B@XF{(W|M$nv+@VPrf|dfp`QX6H+cZ4@c#gNa6FSj9|IWn_RE zC+&4LkDvWLhAnlj$|g_VM}z{uwYoSD0<+^Ujnj(u1?y;EL2{zGO*w{F2fX^^6_NYfmq?E8*aU*jnvZ|9+UjoF6-d!xe1k@e#T>Imtpho&To~( zh{pZl$;kK`LhC-#pyoZu3z^L>fr<304UtzUBRUDB*IbsPRU(aPekxzz2_t8Ek;4d!MDgUE*B}z-my;S zPi!2=oc*ik7)AlP#G`8~TlmpsZ|mXc7XsO0juI)bM-~2v4oCkt=rBf^L8>olP?>?f zCslX!P`nn?mRN7tUzAqZJQ48b6M5YT_vS*?;*`i1N{>VGF0+@=o{l_RA-^=UcCaS> z5wHoWx@KUVubV;tVgIQ`{^<$!e|`c-vU~4p`M{2g4i@Ds=VUQ| z%xIh$+5R@))o*s=oDM%>;ZM8q>Zjef57&M954+Lohuui5`O|KMsh8iR6og2C;r3^F zK*(c%`LpG?B7k6rOC>FAX)-re{`vDQzAA9RTc;=_>h=`p_uHH-+k}2wZ1G47WF71xRwJQVO8iD z0lcs)bR0(lAuYoy%eGY!MdVy)dFjKm=KcnHakJ7PWcB-G%Xq7E8XC4&w_WB1r z%vtOgO|r0&5!xHcvnQ}K1kgl!qwmE7iKF$CGEr=uTBHZa>e02SmJ#e^*rb-!B_$_N z6i2yTL$0|MRhocHr`$f5x$VNYO=jZ-piO22YKS#C zuoZ{Cr%9Lc;H53Tpo0SvNIhf$`;+oZPQ>>hfg3z8*T&>+Ls8CgH zEMYGus@o~7Tl%oOfN&+RX~7HF6p`MpWGFPJ!2r~pUd~=z!MS}Jo3D9PM$~F*rf{5^ zGViTHV5~;rUzENx@?tG9^zPbL5%g`+IG0;d>t%6}jOc|AAb*uMDT8%+` z<*ElSjo~uB*4+$4T321xa9q9Ai)=k?Og35z3aCnknjz#0rmabU^)UYz6*#B)hV*m= zywPznnjSS&U8$5J5-XWCdb;rA8;)Ac()VR=g=J|ia{M4Y!?Bbqor&AOvwLr-yyH9+ z!0Yu9FxX(z-FIr}uqo*<;KE(8)K?1;n7cF7N@H18`iTyMHiXtPoa_PU5Cwn^`K>Sj z=jJt1UQ+6eludiuq z&6^hJa!MWIg67QAD#zyMs&Yz+ET~M(TIJQm_j0*(+(v80nubEV4Gcaye9JB52(xKB z45OOGDLnl}5ZPMXRC#n9NanRnF~@<$prS_chnqG3w%^!BY5Z(dVlT3?-45ghx25KO zR4n}I@Nj|bD-%A2DTy7BQ_zQGDB^qA74J@LkIz%+)}tAZ4|NXR*MG$h1&F^!OT0yp z=kvl7S%#f4ZxiOZw#n1B{*(#)VNrgF^8v-&JDnK3lES}#bc1TNX1plD@2nH1MmRx> zja?lkX}hRQ$26_^D{H$g(=eb~Un?TQ6K)C~dGk*ne;K!+Bm~)(al3 z-|P73*L9mKMN7(?y!|GE5BEKMrb*~M1FT=gk&<9|&}TocY#)h$XNC>4WtQPHiSxLp zuc6y$1{NSA`+ugVvXiiN(a1A!OhL_L)78}vgD2PmCa~Pb!U%=-d?(3#%RZ?+vb-e* zGz7oU^e!3@45ttxw81FQISmt)A?MtxRTkoQl;4=g7jzwM+4-ITPS*h!ULPMW)AYds zc4{V_YBHAL5`_=8EeLE6wl(TjNa_WuUS-?eAEDiaFKl#5Y03a5%Ah7GJ2jwe_&l>D zlt37=Qhs2^z_M}h9Wy4CbPg{W_PC!f6V+9r7tRm$w< ztm+yc#T>5k!@3_S?t5*{jq1e)VRKdM0bNYHZnWtU|6h8e>~DJGjL!A%dgI7{tv6O^ zZNWia@8~f;Dw3*&BoUA*#J2O#Puac3n(Qm(6`6(szrw4oH@dk(R_eK&49Tq-&}(b` zSSMy0#Pgs6v1fFR)*ACMjGlXJJ4+~fh^6j)E`YHex9d@$fxL2BTH*k`KorJOIA)KHmK8xYS27ra$uup~yw%D#PpUj>BiKUyJ2<5JS8%8Y z0Egf4Tb%*mum-H9xd0AAse98#u^XbTd{(me3vM^5e3BNlV2ufEeVWJ@X{_tx+!JBn z;S|`WgbZ7C3F9=})r|ZA^r?W9C5ksi^#XMvV?`{3TY|)! zh^QRGk?>2|6(&E&H*wPj9i~)W&9KU!jb|>AVjtR`p5_l`E>#N1EF&J-Sc>I;QQkf$ zZl6fBF&o0l)TDIW!VYvBI9c|~hoeVoX2DiH!@cG++=83>I-gvn`7K8*tyBGhPyrP4 zz_irkb8+pnl~7bLt_64A56XC-2cV3pD*(!vFO5K*m2`Fh>|UT8FR4ithK?w=8-{4| z1$I&+9!H@D54G!g(o^uWil9GwnB%NHw-7A2OSBshTZ=nvamC?rHY-N*Zw z9WMKwGP-)W9jqR%H8&?a9gfx>nbZT;lgQnFupq5w-El^+F1Lg!*m>~XiC%m)x{O3|D{^jIR0d+avvX%4584MyOSk&mx6zG zl53%osCGg2UBEvZ-y%Hjy?8d9`B%>3zw{fMa11$r^BYS{Buu62Mn5FXZ+HQ^;@Tn% zH7ZH>!9K{MVm#G1f~d%az8Z|O#qb}e&3#4u zKp4Do@gZay^zvLc#8sRdGoBkX%3Iw#U@vA*gI;X-e&PX6*HDM;b>3>DQ8vwnWnK#Z29fXOdK=+D z;1$i8SaH&Pm&E#I2U_ujmvg|$s}}SILz1s(A(nf7Cm`xg*;eMn0AU9c=@G_4@K~AU zz+!Y~%27@NW$`<_uiPI@ttB0-so!J1_SwUI?WTA00*vxvqe5(qTk+w#-P6n>CK3Yo zssm=gZC$@2Lq+!nw2z_A2DGf1%h8f}BA6TLqxds`f06xo8T3Tm!sME$0>UL_h?t{~ zNNMH{4W`yd5KE<}iVZlsxXLGLra<5^Eh%dD>|ayXhE8x2LX|Vx>0fgb>~9~pT-F|8 z$qs28H5*+W596vpzv37T<0>_n(TYB}5k`eE)A_;gd(sC#Vj{l`ecGa^&9Y>DT30c! z=U!1TEAv5Zcw&r{`41S^Xw(?z$*F{eHwDBA^(lBFHr7bYPW?g2=p%lK>Ap|W=wgNXduJg!cWQ2Ki^0LVT`>bO0FQKWckab-y5f{a zO8l~p3I9!x4f1R3m$3G#vVCs0VpuE2NNL2`fMgI`Aq0L(4kidByQk188~>WZRRKg~k}9vD&s%-PX5pLTHgb&2)GeZZR~fw;1}QW5bBX+-CQ zlRZ?xjPhlxa@5)kMxZa_-jGhFbo2C9Yt^4EU<}klXsy;AU|NW^diAXpT%v1Sdw=nk zrGG;$eK&Jn(4ca^S?}K18MLUK9}@2Lqp_`{0<4owt2b+o&4ZJ!3Qxr z9-G`C9mUXK@Tsno<=grDZV4=M<4Tab|^OTE5 z`LL$=xaALw%>@pa_8Z_;uqWLMfrkTinOq4L#*X!{H=Q+vN=t#ZG|@|=mFG4H%jXXP zi-CRGQ{!%Yb(v%q0*zh+&)W_scp??BwR#JI0kQ_MR+p7_fXY#|l}q2^fZ zev5&MPRkS65*$l zb+gYnmk3z!9!*5e5x}1Vs|20ulnChQA5Gwlu-7!J1%0x_n(_+8l! zwB-Q0#u(IU1Oq!wsOr{)SmJD8bI+qnQm97jU7qZ|i*Cad#F;cItI+TfMCNfEJRmwj zKxj{|@j#a#^}CWRQGfJ9NrrwJO_`w~#)z;<_J84n8F1L5w3CnXc8J_*mmHPXP^!Oq zKYp_;j$?WFI88u08mZ{1#K#;+RQdsmWM#n7A`Ea{WH28W7#ybYxgeKZt25W{!Q0;$qWBrZM???{yq zJO{P(m7IeES)u1rx6fSUtP0vhDiv7#wJ1)%{m{fC>(Buh?M zVN0VwTJVTW0Nc6+1fR)})^K68E}eFKPMdq=5+vX!gyn^LU98)Z(ItT4U4IAMS^(Ql zJFyhN7suKz%IlnE%clp>l*h*&rv&{-gn-9oW3n={jVG3cx(UhltdrjIdF8(Cl*#3d zc&j7mqg?~-UotZOaTs*Fb_i5*2$T#>I0l+{I*=8mQF>fK85JIBFoEVP9aRz-hZpyx z$B=vJV+{2z85x`~GB~rG7ng%pd@llQ-`5!Ez!>N$aPBO1>wR$Dy)RI}k4(6q+46p6 z4gjTsiBIzAtbkI1vMjo&4s90gIV-0c$&rY)Rxw^@oGjl1VqY{=+>i~NW0h>DTd8bk zq%5CU0AjAMFbj6bbPV_!V7lO-|7*Iy{*UQG%^#)BO zG!4F+LVtIgy$CYLgRVN!zV^l zxI-@ft;8eMa<*)vY*eHvO9b=gJ60tm>8HL`G&@@8xtGIEubmb>Sf|x|1OsNBUnztR zhi13;%#4LoIC<&MOdFsvE6pY9olmeOZGMai_vw6g4y(ef_uyllDPUfHe?w}%Z%N!D ze*afPi3nJ>?+NryC5q;Bc>ATt9LMi?bPwOFJwZO4^ZoUOd7kn59=* zHs>`GiOAyvo!+6zeMGi0qH2oxJ=Z?WLcTLfBnIP)?BP`%u;QdI*(*L-i#GMhW@A+=*>rtoOq5DXr-^GX zn@4Lq*LU_dO`ZVk>_FkA*mlm@2*`;25YdTPZWr;vY*8>yj6}>(QG1Cpe)ua>j(F6E zt(Z-3*fX_GQz6Ow#l`sT!X%?&xTk(wn9*7LIz?W`X2s7-`yKUi^P&C^RFT4Je8@NE z*3LLc9O-=3YWzKW1VJ7jfW|yvIzYEVs&GE&4xTrYSE!y72nt9nsaZ(BWT4-zTfR{z z@SdU%a2sN2u#rx32iCr#gW$XTxgk|oY*`rVNh1w6)0@XPF1xzHQ zUS2XT^KKW8-%$w#^{z?7hbQtj4w~0cykXM|0?)HOw+8SpdK&dz**NEc$A*lr|4F3| zoWL0fgCgS*7fdU>d3gTdcibfQ+YYIEI#JSnD#|QK@S8IX-4swZ5fK!MAg!G$VbsH@ zV`ZDDteepoa3mTW3Fe2y-D~OZpOb8Vt~A z9JhDcm@sp&z4qVqT%!aUvibyQF=TQ5e{V7Po@w_^jK9E4?HUa<#ux^?CJ^&wz_}h- z75s5t!5BVR{I_BZ9zk*t8P6`Go!BnR;Oyy$l%AK{`S=nECxLSAcaLszF>~78K`}A- zE5ge;XwY&VMQ%^a`od>;v7a7F-X^2iuv~wncy&eO*gSS9BX`eQ3NR7kgmTx%I6zjo zMo+ogk>41x_nwx0v6Fp4ntCzHUdhjT`j#n>;%}So1C`>5d$1CH+aq_39r7)vx_iuS z1vcGAQQ36rc$5l`{(#*22;a{lL7*}1zH5?lFMv5qdZ3~v9yM<7Tw1d)FV);U>CLky zzc=Qk<;|DeE!85Xt*cO1Lmd+ux}_s?-&1|%B~l%e)fjf}*-sJHG(>YF|H*eY9Q^4! z+x?sG9O;q}D^P?G1DlW)Kk~qv1R5W&GX>@dT2gk3m~5ioYmF4u7KyfpWph7B?LkPg zkA;|#ejOTehJ~?Zn@LTBrq~%1552qF1*j;XiMZO3Yhp{e+T@@G!Bt*wrIe%Pe}Sp} z>N{m+_n|%1ZO9WV@5)aFjPHR3_z-Zt_5;U#SIDFVFoaaaMoD^QTm7QoW|0*N0|Ea!-NSxKkQ&H z{zH70Z-Gquar-Tf?$7DPfh2lo@*9OGyFsOu=U|C6w7O2&QKVM#B;m$5Uv6ARc;v(L z>{kdyV;o|}s0YA#Kr~u_o|C;Eyh%%`1#V3})P?0RQK;PhPsP)>5p^WkSdk=01 zGyp0Lq1^ttVLblKF9;8J0_cE71K^^U3xw_)Aj`1xhb#j*Aj`0M`L9`q)}L7hvfG3X z4Wyl3K$ZcSK`HyUEQ1HLTrwcbu$M;ub9C{s>QAE!Obpt}Rd1qQ3bnT%G1m=v&e0!% ziWiQ2g&-C?&CYm3&I(IX7`WI+k4LWZTtU)Uj@!6cUDt6LXHQlGOaN_$lTZnbqtMZk zYu9pW^?#dND4Fpbc>v;$^d{fwq70YSs}R`DHVS*2Ihl@}LK6z9YPVsFHB3|iHd8yS8|&jtp<(#&^?!hUshDR7--uPSMn zQYaG|Zo*U(8Uky<8AKM|3TXE8G5PGq3ZokZh(o>mM2=|tiUp>|NE<097$}0n6yBO5 z^2lhM&o&CED7Xpv0%@w*S-@Acw5s_PERs6+y0r-lq>Rj4Y7q-tl0$@&8m@-Iz+m%w5lpIYfDs!o$27oOc`RRVS~ zoXRyEL*fOkT6hEN9;vg-V$3^SKnK?mf@>U7|>QA7yZ0Pz3K&6wB!n5N$Si#iBOKp}fHKme8THxS zFvkn<%EkOHj+aY+I$UMT_A7m{=u%bi&d1d|7OlBZulkcdp5fH2V)DOMo<;wuJlp+J zo@;PV{A+O|M~5#|8L(|qi4xSo>o3!^D11eBW&NNk{xG({{5iJR2mYRG3jtfVf1qP( zVqd8zs&+&PU%JStmtJ0KAojy}o|Fup9JZtfB2tf7p$YZDg5A~ zRfRDw*AxqHcqHL;l_0{CJJpg*(iP~y*ZnYzLuuP>?HkY;`xP|0M~VugK3`ENRh!Sx zX$)Ue_S-7Bq4|04ngnKNqXlkuDeNRZ6^j~cO1`y9qBwj7Vz_%HlGy z!FItPbMN#sa&8x)=2wLsJrPh(SpJ;(5pm0K7X;wrb7!}E^jvY-d3?#|#djKPgj$F* z8*awGFFdtQW*QTLxJaIFU7++J(&)oi0kol(RQAb9@P?Mqb&)p@A?-xaHdQAp;71pH z{pt_H4q1_DdmTg+LLlas86TjcHms}>Vk4azf(@aK9Gq+8oF;;6!Q)dP(BbdQ znadE9QL(EM`c^QwGEqoDU=6D0`%;;dE_u{ST^>;<7jVMoTfl~Hqe+{a37CaG@30%HF?8bYU$!dBv4u)FA~ zuRib~>>hX{<)X{eLt}43QY_J*+YASPqs_oY4K%=Y$z7aX)1pV;JT`jFAHi76qbJpe zAn)y;�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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPNG.png b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPNG.png new file mode 100644 index 0000000000000000000000000000000000000000..afbcb5f738863e20949365a7ffc801cf89dbd5a6 GIT binary patch literal 17041 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 d%|-5P_X$ch&5EKw;X^>V@5T)zR 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%0Dl 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 z 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPPT_various.pptx b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPPT_various.pptx new file mode 100644 index 0000000000000000000000000000000000000000..92c2744dc4ec866214d9e00a0a597ee246a21be6 GIT binary patch literal 56659 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 Mz~hQT=f=DL0rCAhZ2$lO literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPSD.psd b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testPSD.psd new file mode 100644 index 0000000000000000000000000000000000000000..7cedbc21a7a8fc3ed3813ade1c6f302545148275 GIT binary patch literal 69410 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

    k+pUF9jIMcN#_3o^mGdlKI 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRDF.rdf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRDF.rdf new file mode 100644 index 0000000..04b3da7 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRDF.rdf @@ -0,0 +1,23 @@ + + + + + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRFC822 b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRFC822 new file mode 100644 index 0000000..9ce423a --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRFC822 @@ -0,0 +1,41 @@ +From: "Julien Nioche (JIRA)" +To: dev@tika.apache.org +Subject: [jira] Commented: (TIKA-461) RFC822 messages not parsed +Reply-To: dev@tika.apache.org +Delivered-To: mailing list dev@tika.apache.org +Date: Mon, 6 Sep 2010 05:25:34 -0400 (EDT) +In-Reply-To: <6089099.260231278600349994.JavaMail.jira@thor> +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 7bit +X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 +X-Virus-Checked: Checked by ClamAV on apache.org + + + [ https://issues.apache.org/jira/browse/TIKA-461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906468#action_12906468 ] + +Julien Nioche commented on TIKA-461: +------------------------------------ + +I'll have a look at mime4j and try to use it in Tika + +> RFC822 messages not parsed +> -------------------------- +> +> Key: TIKA-461 +> URL: https://issues.apache.org/jira/browse/TIKA-461 +> Project: Tika +> Issue Type: Bug +> Components: parser +> Affects Versions: 0.7 +> Reporter: Joshua Turner +> Assignee: Julien Nioche +> +> Presented with an RFC822 message exported from Thunderbird, AutodetectParser produces an empty body, and a Metadata containing only one key-value pair: "Content-Type=message/rfc822". Directly calling MboxParser likewise gives an empty body, but with two metadata pairs: "Content-Encoding=us-ascii Content-Type=application/mbox". +> A quick peek at the source of MboxParser shows that the implementation is pretty naive. If the wiring can be sorted out, something like Apache James' mime4j might be a better bet. + +-- +This message is automatically generated by JIRA. +- +You can reply to this email to add a comment to the issue online. + diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRTFVarious.rtf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRTFVarious.rtf new file mode 100644 index 0000000..57fadb9 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testRTFVarious.rtf @@ -0,0 +1,329 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} +{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\fbidi \froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f10\fbidi \fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} +{\f11\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};}{\f15\fbidi \fmodern\fcharset128\fprq1{\*\panose 020b0609070205080204}MS Gothic{\*\falt MS Mincho};} +{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;} +{\f175\fbidi \fmodern\fcharset128\fprq1{\*\panose 02020609040205080304}@MS Mincho;}{\f209\fbidi \fmodern\fcharset128\fprq1{\*\panose 00000000000000000000}@MS Gothic;} +{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f210\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\f211\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f213\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f214\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f215\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\f216\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f217\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f218\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f220\fbidi \fswiss\fcharset238\fprq2 Arial CE;} +{\f221\fbidi \fswiss\fcharset204\fprq2 Arial Cyr;}{\f223\fbidi \fswiss\fcharset161\fprq2 Arial Greek;}{\f224\fbidi \fswiss\fcharset162\fprq2 Arial Tur;}{\f225\fbidi \fswiss\fcharset177\fprq2 Arial (Hebrew);} +{\f226\fbidi \fswiss\fcharset178\fprq2 Arial (Arabic);}{\f227\fbidi \fswiss\fcharset186\fprq2 Arial Baltic;}{\f228\fbidi \fswiss\fcharset163\fprq2 Arial (Vietnamese);}{\f230\fbidi \fmodern\fcharset238\fprq1 Courier New CE;} +{\f231\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f233\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f234\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f235\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);} +{\f236\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f237\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f238\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);} +{\f322\fbidi \fmodern\fcharset0\fprq1 MS Mincho Western{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};}{\f320\fbidi \fmodern\fcharset238\fprq1 MS Mincho CE{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};} +{\f321\fbidi \fmodern\fcharset204\fprq1 MS Mincho Cyr{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};}{\f323\fbidi \fmodern\fcharset161\fprq1 MS Mincho Greek{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};} +{\f324\fbidi \fmodern\fcharset162\fprq1 MS Mincho Tur{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};}{\f327\fbidi \fmodern\fcharset186\fprq1 MS Mincho Baltic{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};}{\f550\fbidi \froman\fcharset238\fprq2 Cambria Math CE;} +{\f551\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f553\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f554\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f557\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;} +{\f580\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f581\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f583\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f584\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\f587\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f590\fbidi \fswiss\fcharset238\fprq2 Tahoma CE;}{\f591\fbidi \fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f593\fbidi \fswiss\fcharset161\fprq2 Tahoma Greek;} +{\f594\fbidi \fswiss\fcharset162\fprq2 Tahoma Tur;}{\f595\fbidi \fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f596\fbidi \fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f597\fbidi \fswiss\fcharset186\fprq2 Tahoma Baltic;} +{\f598\fbidi \fswiss\fcharset163\fprq2 Tahoma (Vietnamese);}{\f599\fbidi \fswiss\fcharset222\fprq2 Tahoma (Thai);}{\f1962\fbidi \fmodern\fcharset0\fprq1 @MS Mincho Western;}{\f1960\fbidi \fmodern\fcharset238\fprq1 @MS Mincho CE;} +{\f1961\fbidi \fmodern\fcharset204\fprq1 @MS Mincho Cyr;}{\f1963\fbidi \fmodern\fcharset161\fprq1 @MS Mincho Greek;}{\f1964\fbidi \fmodern\fcharset162\fprq1 @MS Mincho Tur;}{\f1967\fbidi \fmodern\fcharset186\fprq1 @MS Mincho Baltic;} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;} +{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;} +{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\chyperlink\ctint255\cshade255\red0\green0\blue255;\caccentone\ctint255\cshade255\red79\green129\blue189;}{\*\defchp \f31506\fs22 } +{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 +\rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 \styrsid16456967 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused \sqformat Normal Table;}{ +\s15\ql \li0\ri0\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext15 \slink16 \sunhideused \styrsid4535536 header;}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \slink15 \slocked \styrsid4535536 Header Char;}{\s17\ql \li0\ri0\widctlpar +\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext17 \slink18 \sunhideused \styrsid4535536 footer;}{\*\cs18 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \sbasedon10 \slink17 \slocked \styrsid4535536 Footer Char;}{ +\s19\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af38\afs16\alang1025 \ltrch\fcs0 \f38\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext19 \slink20 \ssemihidden \sunhideused \styrsid4535536 Balloon Text;}{\*\cs20 \additive \rtlch\fcs1 \af38\afs16 \ltrch\fcs0 \f38\fs16 \sbasedon10 \slink19 \slocked \ssemihidden \styrsid4535536 Balloon Text Char;}{\*\cs21 \additive +\rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf17 \sbasedon10 \sunhideused \styrsid4535536 Hyperlink;}{\*\cs22 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \cf15 \sbasedon10 \ssemihidden \styrsid4535536 Placeholder Text;}{ +\s23\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs20\alang1025 \ltrch\fcs0 \f31506\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext23 \slink24 \ssemihidden \sunhideused \styrsid10829135 footnote text;}{\*\cs24 \additive \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20 \sbasedon10 \slink23 \slocked \ssemihidden \styrsid10829135 Footnote Text Char;}{\*\cs25 \additive +\rtlch\fcs1 \af0 \ltrch\fcs0 \super \sbasedon10 \ssemihidden \sunhideused \styrsid10829135 footnote reference;}{\*\ts26\tsrowd\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv +\brdrs\brdrw10 \trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv +\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon11 \snext26 \spriority59 \styrsid8288896 +Table Grid;}{\s27\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext27 \sqformat \spriority34 \styrsid10055055 List Paragraph;}{\s28\ql \li0\ri0\sa200\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af31507\afs18\alang1025 \ltrch\fcs0 +\b\f31506\fs18\cf18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \sunhideused \sqformat \spriority35 \styrsid11105546 caption;}}{\*\listtable{\list\listtemplateid1249008552\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0 +\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative +\levelspace360\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0 +{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid73432867}{\list\listtemplateid1071396652\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0 +{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li2160\lin2160 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698689\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext +\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li4320\lin4320 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698689 +\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0\hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698691 +\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360\levelindent0{\leveltext\leveltemplateid67698693 +\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid169494399}{\list\listtemplateid-487930464\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698705\'02\'00);}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li720\lin720 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698713\'02\'01.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li1440\lin1440 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698715\'02\'02.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li2160\lin2160 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698703\'02\'03.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li2880\lin2880 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698713\'02\'04.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li3600\lin3600 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698715\'02\'05.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li4320\lin4320 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698703\'02\'06.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5040\lin5040 }{\listlevel\levelnfc4\levelnfcn4\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698713\'02\'07.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-360\li5760\lin5760 }{\listlevel\levelnfc2\levelnfcn2\leveljc2\leveljcn2\levelfollow0\levelstartat1\lvltentative\levelspace360 +\levelindent0{\leveltext\leveltemplateid67698715\'02\'08.;}{\levelnumbers\'01;}\rtlch\fcs1 \af0 \ltrch\fcs0 \hres0\chhres0 \fi-180\li6480\lin6480 }{\listname ;}\listid1132862691}}{\*\listoverridetable{\listoverride\listid169494399\listoverridecount0\ls1} +{\listoverride\listid73432867\listoverridecount0\ls2}{\listoverride\listid1132862691\listoverridecount0\ls3}}{\*\rsidtbl \rsid724479\rsid2255182\rsid2767955\rsid4260063\rsid4535536\rsid5051464\rsid5706211\rsid5843828\rsid7218132\rsid8152053\rsid8288896 +\rsid9897893\rsid9969477\rsid10055055\rsid10249050\rsid10829135\rsid11105546\rsid12662658\rsid12941695\rsid13331334\rsid14163426\rsid14225018\rsid14292078\rsid14556934\rsid16456967\rsid16539678}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0 +\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\subject Subject is here}{\author Michael McCandless}{\keywords Keyword1 Keyword2}{\operator Michael McCandless}{\creatim\yr2011\mo8\dy29\hr5\min20} +{\revtim\yr2011\mo8\dy30\hr6\min13}{\version30}{\edmins445}{\nofpages2}{\nofwords95}{\nofchars546}{\nofcharsws640}{\vern32771}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} +\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves1\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale150\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot4535536\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4535536 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 \chftnsep +\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4535536 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 \chftnsepc +\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4535536 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 \chftnsep +\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid4535536 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 \chftnsepc +\par }}\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid16456967\sftnbj {\headerr \ltrpar \pard\plain \ltrpar\s15\ql \li0\ri0\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 +\rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 This is the header text}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12662658 .}{\rtlch\fcs1 +\af31507 \ltrch\fcs0 \insrsid4535536 +\par +\par }}{\footerr \ltrpar \pard\plain \ltrpar\s17\ql \li0\ri0\widctlpar\tqc\tx4680\tqr\tx9360\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 This is the footer text. +\par +\par }}{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}} +{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1024\langfe1024\noproof\langfenp1028\insrsid4535536 {\shp{\*\shpinst\shpleft4866\shptop1990\shpright8593\shpbottom2658\shpfhdr0\shpbxcolumn\shpbxignore\shpbypara\shpbyignore\shpwr3\shpwrk0\shpfblwtxt0\shpz0\shplid1026 +{\sp{\sn shapeType}{\sv 202}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn lTxid}{\sv 65536}}{\sp{\sn hspNext}{\sv 1026}}{\sp{\sn fFitShapeToText}{\sv 1}}{\sp{\sn dhgt}{\sv 251660288}}{\sp{\sn pctHoriz}{\sv 400}}{\sp{\sn pctVert}{\sv 200}} +{\sp{\sn sizerelh}{\sv 0}}{\sp{\sn sizerelv}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\shptxt \ltrpar \pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 +\af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 Here is a text box +\par }}}{\shprslt{\*\do\dobxcolumn\dobypara\dodhgt8192\dptxbx\dptxlrtb{\dptxbxtext\ltrpar \pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 Here is a text box +\par }}\dpx4866\dpy1990\dpxsize3727\dpysize668\dpfillfgcr255\dpfillfgcg255\dpfillfgcb255\dpfillbgcr255\dpfillbgcg255\dpfillbgcb255\dpfillpat1\dplinew15\dplinecor0\dplinecog0\dplinecob0}}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 Footnote appears here} +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \cs25\super\insrsid10829135 \chftn {\footnote \ltrpar \pard\plain \ltrpar\s23\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs20\alang1025 \ltrch\fcs0 +\f31506\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \cs25\super\insrsid10829135 \chftn }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10829135 This is a footnote.}}}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid14292078 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14556934 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\insrsid14556934\charrsid14556934 Bold}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14556934 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \i\insrsid14556934\charrsid14556934 italic}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid14556934 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \ul\insrsid14556934\charrsid14556934 underline}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14556934 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \super\insrsid14556934\charrsid14556934 superscript}{\rtlch\fcs1 +\af31507 \ltrch\fcs0 \insrsid14556934 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \sub\insrsid14556934\charrsid14556934 subscript}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14556934 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10055055 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14292078 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10055055 Here is a list: +\par {\listtext\pard\plain\ltrpar \s27 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\insrsid10055055 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}}\pard\plain \ltrpar\s27\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls2\adjustright\rin0\lin720\itap0\pararsid10055055\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 +\ltrch\fcs0 \insrsid10055055 Bullet 1 +\par {\listtext\pard\plain\ltrpar \s27 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\insrsid10055055 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}Bullet 2 +\par {\listtext\pard\plain\ltrpar \s27 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f3\fs22\insrsid10055055 \loch\af3\dbch\af31506\hich\f3 \'b7\tab}Bullet 3 +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10055055 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid10055055 Here is a numbered list: +\par {\listtext\pard\plain\ltrpar \s27 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid10055055 \hich\af31506\dbch\af31506\loch\f31506 1)\tab}}\pard\plain \ltrpar\s27\ql \fi-360\li720\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\ls3\adjustright\rin0\lin720\itap0\pararsid10055055\contextualspace \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 +\ltrch\fcs0 \insrsid10055055 Number bullet 1 +\par {\listtext\pard\plain\ltrpar \s27 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid10055055 \hich\af31506\dbch\af31506\loch\f31506 2)\tab}Number bullet 2 +\par {\listtext\pard\plain\ltrpar \s27 \rtlch\fcs1 \af31507\afs22 \ltrch\fcs0 \f31506\fs22\insrsid10055055 \hich\af31506\dbch\af31506\loch\f31506 3)\tab}Number bullet 3 +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 +\af31507 \ltrch\fcs0 \insrsid10829135 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536\charrsid4535536 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 Keyword1 Keyword2}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 }{\rtlch\fcs1 +\af31507 \ltrch\fcs0 \insrsid15481255 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 HYPERLINK "http://tika.apache.org" }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4800000068007400740070003a002f002f00740069006b0061002e006100700061006300680065002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0000}}}{\fldrslt { +\rtlch\fcs1 \af31507 \ltrch\fcs0 \cs21\ul\cf17\insrsid4535536\charrsid4535536 This is a hyperlink}}}\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid16456967\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14292078 +\par +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid4535536\charrsid4535536 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14292078 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14292078 Subject is here}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid14292078 }{\rtlch\fcs1 +\af31507 \ltrch\fcs0 \insrsid4535536 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8288896 +\par \ltrrow}\trowd \irow0\irowband0\ltrrow\ts26\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 +\trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid8288896\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 +\clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx3084\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx6276\clvertalt +\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx9468\pard\plain \ltrpar +\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\yts26 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8288896 +Row 1 Col 1\cell Row 1 Col 2\cell Row 1 Col 3\cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8288896 \trowd \irow0\irowband0\ltrrow\ts26\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr +\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid8288896\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt +\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx3084\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 +\cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx6276\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx9468\row \ltrrow}\pard\plain \ltrpar +\ql \li0\ri0\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\yts26 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8288896 +Row 2 Col 1\cell Row 2 Col 2\cell Row 2 Col 3\cell }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\intbl\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8288896 \trowd \irow1\irowband1\lastrow \ltrrow\ts26\trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr +\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 \trftsWidth1\trftsWidthB3\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblrsid8288896\tbllkhdrrows\tbllkhdrcols\tbllknocolband\tblind0\tblindtype3 \clvertalt\clbrdrt +\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx3084\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 +\cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx6276\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth3192\clshdrawnil \cellx9468\row }\pard \ltrpar +\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8288896 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid724479 Suddenly some }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5706211 J}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid724479 apanese text:}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9969477 +\par }{\rtlch\fcs1 \af11 \ltrch\fcs0 \loch\af11\hich\af11\dbch\af11\insrsid724479\charrsid724479 \loch\af11\hich\af11\dbch\f11 \uc2\u12478\'83\'5d\u12523\'83\'8b\u12466\'83\'51\u12392\'82\'c6\u23614\'94\'f6\u23822\'8d\'e8\u12289\'81\'41\u28129\'92\'57\u12293 +\'81\'58\u12392\'82\'c6\u26368\'8d\'c5\u26399\'8a\'fa}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9969477 +\par }{\rtlch\fcs1 \af15 \ltrch\fcs0 \lang1033\langfe1041\loch\af15\hich\af15\dbch\af15\langfenp1041\insrsid5843828 \loch\af15\hich\af15\dbch\f15 \uc2\u-248\'81\'69\u-217\'82\'66\u-216\'82\'67\u-207\'82\'70\u-247\'81\'6a}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\insrsid9969477 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5706211 And then some Gothic text: +\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14163426 {\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14163426 \u-10240\'3f\u-8398\'3f\u-10240\'3f\u-8385\'3f\u-10240\'3f\u-8380\'3f\u-10240\'3f\u-8391\'3f\u-10240 +\'3f\u-8381\'3f\u-10240\'3f\u-8390\'3f}{\rtlch\fcs1 \af1\afs20 \ltrch\fcs0 \f1\fs20\insrsid14163426 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9969477 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid7218132 Here is a citation:}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9969477 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12941695 }{\field{\*\fldinst {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12941695 CITATION Kra \\l 1033 }}{\fldrslt {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid12941695 (Kramer)}}} +\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid16456967\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid12941695 }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid9969477 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid11105546 +\par }\pard\plain \ltrpar\s28\ql \li0\ri0\sa200\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid11105546 \rtlch\fcs1 \ab\af31507\afs18\alang1025 \ltrch\fcs0 \b\f31506\fs18\cf18\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid11105546 Figure }{\field{\*\fldinst {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid11105546 SEQ Figure \\* ARABIC }}{\fldrslt {\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1024\langfe1024\noproof\insrsid11105546 1}}} +\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid16456967\sftnbj {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid11105546 This is a caption for Figure 1 +\par }\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8152053 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid8152053 +\par +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5051464 \sect }\sectd \ltrsect\sbknone\linex0\cols2\endnhere\sectlinegrid360\sectdefaultcl\sectrsid5051464\sftnbj \pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid5051464 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5051464 +Row 1 column 1 +\par Row 2 column 1 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8152053 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5051464 Row 1 column 2 +\par Row 2 column 2 +\par \sect }\sectd \ltrsect\sbknone\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid5051464\sftnbj \pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid8152053 \rtlch\fcs1 +\af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5051464\charrsid8152053 +\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8 +72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7 +2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b +44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7 +065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000 +00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08 +84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc +52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353 +bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468 +656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c +070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7 +29e245eb2b260a0238fd010000ffff0300504b03041400060008000000210096b5ade296060000501b0000160000007468656d652f7468656d652f7468656d65 +312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87615b8116d8 +a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad79482a9c04 +98f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b5d8a314d3c +94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab999fb7b471 +7509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9699640f671 +9e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd5868b37a088d1 +e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d60cf03ac1a5 +193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f9e7ef3f2d1 +17d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be15c308d3f2 +8acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a99793849c26ae6 +6252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d32a423279a +668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2af074481847 +bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86e877f0034e +16bafb0e258ebb4faf06b769e888340b103d3311da9750aa9d0a1cd3e4efca31a3508f6d0c5c5c398602f8e2ebc71591f5b616e24dd893aa3261fb44f95d843b +5974bb5c04f4edafb95b7892ec1108f3f98de75dc97d5772bdff7cc95d94cf672db4b3da0a6557f70db629362d72bcb0431e53c6066acac80d699a6409fb44d0 +8741bdce9c0e4971624a2378cceaba830b05366b90e0ea23aaa241845368b0eb9e2612ca8c742851ca251ceccc70256d8d87265dd96361531f186c3d9058edf2 +c00eafe8e1fc5c509031bb4d680e9f39a3154de0accc56ae644441edd76156d7429d995bdd88664a9dc3ad50197c38af1a0c16d684060441db02565e85f3b966 +0d0713cc48a0ed6ef7dedc2dc60b17e92219e180643ed27acffba86e9c94c78ab90980d8a9f0913ee49d62b512b79626fb06dccee2a432bbc60276b9f7dec44b +7904cfbca4f3f6443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc399161ee314bc2e75cf8759081743be1236ec4f4d6693e5336fb672c5dc24a8c33585b5fb +9cc24e1d4885545b58463634cc5416022cd19cacfccb4d30eb45296023fd35a458598360f8d7a4003bbaae25e331f155d9d9a5116d3bfb9a95523e51440ca2e0 +088dd844ec6370bf0e55d027a012ae264c45d02f708fa6ad6da6dce29c255df9f6cae0ec38666984b372ab5334cf640b37795cc860de4ae2816e95b21be5ceaf +8a49f90b52a51cc6ff3355f47e0237052b81f6800fd7b802239daf6d8f0b1571a8426944fdbe80c6c1d40e8816b88b8569082ab84c36ff0539d4ff6dce591a26 +ade1c0a7f669880485fd484582903d284b26fa4e2156cff62e4b9265844c4495c495a9157b440e091bea1ab8aaf7760f4510eaa69a6465c0e04ec69ffb9e65d0 +28d44d4e39df9c1a52ecbd3607fee9cec7263328e5d661d3d0e4f62f44acd855ed7ab33cdf7bcb8ae889599bd5c8b3029895b6825696f6af29c239b75a5bb1e6 +345e6ee6c28117e73586c1a2214ae1be07e93fb0ff51e133fb65426fa843be0fb515c187064d0cc206a2fa926d3c902e907670048d931db4c1a44959d366ad93 +b65abe595f70a75bf03d616c2dd959fc7d4e6317cd99cbcec9c58b34766661c7d6766ca1a9c1b327531486c6f941c638c67cd22a7f75e2a37be0e82db8df9f30 +254d30c1372581a1f51c983c80e4b71ccdd28dbf000000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f74 +68656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f24 +51eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198 +720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528 +a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c0200001300000000000000000000000000 +000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b000000000000000000000000 +002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000140200007468 +656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210096b5ade296060000501b000016000000000000000000 +00000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b010000270000000000 +00000000000000009b0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000960a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; +\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7; +\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e352e30000000000000000000000e0000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdffffff05000000feffffff04000000fefffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff01000000ec69d9888b8b3d4c859eaf6cd158be0f0000000000000000000000000076 +bb6efd66cc0103000000c0030000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff0200000000000000000000000000000000000000000000000076bb6efd66cc01 +0076bb6efd66cc010000000000000000000000003500cb004c0053004a004300ca00d80044005500470056003000cd0045004500d100c3004c00c000cd0051003d003d000000000000000000000000000000000032000101ffffffffffffffff0300000000000000000000000000000000000000000000000076bb6efd66 +cc010076bb6efd66cc010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000016020000000000000100000002000000030000000400000005000000060000000700000008000000feffffff0a0000000b0000000c0000000d0000000e000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c623a536f757263657320786d6c6e733a623d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f6772617068792220786d6c6e733d +22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879222053656c65637465645374796c653d225c4150412e58534c22205374796c654e616d653d22415041223e3c623a536f757263653e3c623a546167 +3e4b72613c2f623a5461673e3c623a536f75726365547970653e426f6f6b3c2f623a536f75726365547970653e3c623a477569643e7b32313839323034362d453338412d344136382d383931312d3837313145343731453345347d3c2f623a477569643e3c623a4c4349443e303c2f623a4c4349443e3c623a417574686f +723e3c623a417574686f723e3c623a4e616d654c6973743e3c623a506572736f6e3e3c623a4c6173743e4b72616d65723c2f623a4c6173743e3c2f623a506572736f6e3e3c2f623a4e616d654c6973743e3c2f623a417574686f723e3c2f623a417574686f723e3c623a5469746c653e486f7720746f207573652054696b +613c2f623a5469746c653e3c623a5265664f726465723e313c2f623a5265664f726465723e3c2f623a536f757263653e3c2f623a536f75726365733e0d0a68aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e31983c3f786d6c2076657273696f6e3d22312e302220656e +636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b32344432423237452d423832412d343130442d393536412d4431303443363332453042357d2220786d6c6e733a64733d22687474703a2f2f736368656d61 +732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666 +696365446f63756d656e742f323030362f6269626c696f677261706879222f3e3c2f64733a736368656d61526566733e3c2f64733a6461746173746f72654974656d3e68656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000009b0900007468656d +652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffff +ffff0000000000000000000000000000000000000000000000000000000000000000000000000900000055010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff +ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffff +ffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff +ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}} diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testSVG.svg b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testSVG.svg new file mode 100644 index 0000000..f78a87d --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testSVG.svg @@ -0,0 +1,7 @@ + + + + Test SVG image + + \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testTIFF.tif b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testTIFF.tif new file mode 100644 index 0000000000000000000000000000000000000000..8f6c7abba4243d5562e67566675fd12df14cb1d0 GIT binary patch literal 25584 zcmeFZWpo_bmL^)ad)`~~=G`K*Wm#lNmMpfI88Vg3%qS%&NzBZQDP~rRnPth6Wt17p zE@PRgTz1j)dPjE6ou0LNe)L*z{@rjW@kmrwDtepI2M1k!Qrpw|K)FAo%(;i`YLR92Q2^f^S?k38eYX$s%TJ6WF*^&B37%# zG9fKU&ecfyGPR0^m1~q-K8+p4=8E{Xa;1=_7DuvaYNbXNNmD7gG&NtPrYZTV&;3-N zcWrq8c>C^I93&*fRxK8M^%YFa<;zrjo{?H^q!#gw{6CLsgp~`_F>EE@C`7K2@z`py zTxMk9j}5Uj0=s;rkzB?%k}Hj*a?ph zfy6-qgN+1Y3Ezk(R(*LBxO9wIEdm|HDx(;=GSWx@#$oe#;@yj~B}QTyI3WG<5tMu( zTgd}(fQv@ODaAsO+DINF189lFQMO-w_4mJnKO%q<(BKhhgCz|7?cV&)uU@{fV1AK& zwGoFe6wAC#-pnnT7>Rk_CPZhrJv=IqFA|5vEBV-X1dbaY$#v(M`1<@euUL;*X_S<& zW*fyyB{G#qthWi9C+F}zKzsMFor%%sF6u~c6A~O{6u1kEldY4jy-jeeIQpcC&wn%W zQt|{In4plqh5&osCL*;u%EQhsCML!<#&P#f+BvwpyW82Hv^#my2K2B|#mUs{SR0w@ z*zOQt#t7o8xJq%<=UcKnCYvMIsJ%^0z<< zp9eJZ;&DAx8cqbCtKPl9UzZ4A3%~4rxuQhu!)2?z>~^mP+MoOV`=x&99>U*_|F@B+I-|MMdMDS-b8*FWL< zPa*K1>ikc3{S&VL6axRL&i`cB|8H>pxBn^F_%fiTZDcwzqhqlb^y*B6I6`_3+%n(Xe; zHMCwnvvK3%#XHw8-nh8^2i6jdrlTcX4ENZgg~eY4+m!nbS+_ z%QH*s(+iV>x|v>`uDxe&bo%tl+GNk*sin>7@wGRv-mfoiRFqWJ)wU04JLeXz+`IeJ z{OtO@JNM>BXFBUTe}4PEBd7eq^&88RBdp};keE;h8ch8^S z-afb1H+FVr`O4y%vAT|xuBr9$xvl=y?a}4!(be0F=dX=!-CVeM@xuLgKYs!<`n>${ z8vyB#-`~Cc`NM~g0E)+tp8omgA0OWR^8D7*YqJ-xo%!MF&W~rdZr!>2?C19%UcP+& z>CG_fI&W7gIsoBk?<>i_Ag{j%5>Y9b= zxsBBZwG>l2HQZvMD3JiEQLIoUdJYH<3e zn?GJyT)nh@`pm-Y&7E^U-M=@|+OxB|)l=C#uI=0ETih65I@P&!d*afC!HuQ*(Yv#k zu8yC(dHcnyHy^-Ue);9&Z@>KpCIoo!;>DX^K70ZMd-U+>>sPNoy#Mh0=CiZoXV#`K zuPj_yKXqs4@`J~Zp8fv&Z|~pz0=oV0NcBJP`NFK-Ex6G6Q>)XX<4X$*gS~@Iwe@q8 zbLUTOtpBO<`-Yopo7%PY3lkHIQ?rx(gFSWi z>mw5vR!$GM^qpBfy}fpNZe*gjtMA17m|Nx^8XzKuho1+)7XL zKwo{|XxG%a)A3uHsAb_d;^zh03 z%Xfc%^>(>;Wo_cjc+bN6^7X6No?pB5)6egI{_WS_fSLV=SbaGN=n4h_3jhk-i+69| zpW9elot+=*?(gd8sx7M>85o-yoLrk-Se>35=<2Vlu3sLXSeu&Kn4TN#>YdR|%}q`> z*ELS-hR?1nT|Ixkuc_nQ@~O?mP|p?q0j`^SgJz zvkj%}<{`F3-+u3#x9epIz>oC{4+($u6HBoSSIsS?`;=w6K19 zc;VLO`BOu)r^gmX8@eVtbpV{&?833uu7cRa{+5n{_{`kcl>C%}vb3U#tctdV@%g!n zm(Jf@U%GT=#OS6~qX@EWoJGi2eED!-u)y{;83% z@u5L&Rb6IE+Hn8C$k6EIh;DpjyuU}+Slu|>-FKE1QDIat@(RiPd48JlhySm~Nr=^kI}o1E_(zc{xt-#)l8IMG>I+g97uR;g_) zsH)2;ZmQIlCKnc^6jtR_RTVTg*9|Yu?3`M={KMTRuU>A@$OHrUcLwY0c(Ey_4oI$KfHPU z9z>$G)t!6y9)i$t_x}B-&!7GD;_0uy{sKUI{rdG#Q{zZ~-{_#OtD`$JEvvbvsjp{n zVQPMEa%`xtx3aXnySa60bXwQ1>+9(+FD!1WYXEo-ws(vT>Xzmfx7IdR7gnYQ2T#q; zEsjrJI(_=#z5A2H!^<;^KyTC*Rdu)b4)#wyd-`l{V!ArJ`0lx@r-tVS>N;mS`{qYx z*9T|jdM0$*W}UXPx2*B(==_D*wQC#ObG>7uT?6e^4HcOs4W(7><#km#Wz~7LtrZDOOBefr_*o$a}m?d6S2XD{8o za_7#~JGZXfxwiAewVm5@}dF{fv3m`^xG`5!H z=6AJrS5~%aYnpCcz5)V4M@{3ytG8}$p6jlz>#u8G9GzJkpPT6(1W?Shcb^`aJ3qB_ zdT8p(+SWwZfUdc@F2ACqOxx4g(p}jw+T1(P(5Y*kEYH(+wv1jp`*3At2TTD#w5t|= z{|%Tq5Dj4W<1Zf{-+urA{PokXH$YfEy*)oPIo312y>j->^}DB+w;$YlxO4W(#M7h5|i_Di>4>XmZoOL$A(J^@t%IgTq5ZUG4pY10((Y z-9VGg&CD;&0F36w1_u|$CT53+FK(S19vaS0$!e;t9c=HcEvs&C>6jd!xpU*z%G_*A zMb+uy=`&-~<9$P|CFO%{eLdAJLron6_08+LF%Sgjdj_tqp1!wpqo=lcvb%Snsk6Vn zdAhfIx^w94?DABHu1njm>zx?yUwM50^|fn{fdzpe2q?4*(Z^3e|GX;$z?46mBtYPo zD_iH!uWb&u_H{S*UA}N-Yi;Y|#)S*pmtH=5`R4W8#}6I@cmY=L-hKG;mS2DU^{1bn zzJLGA_!*4Fl(o{qU$-T4da6C<-N_FEj3Lg ziRpulE!Q{CT$ouNs%yKsasJZjbE6&I?bQwA-2+oVdw`qKGqO55-{08RQP(}$Grcgf z_V~e*%R6@go!-0#{`pTZ(-+TPy?p)(Fb%l$&qw|My7%GryA!Q_*48#Q zcj$)uhkDz)TIxqfdwN=%2K)Luni}Rt2N!212l|F9%gWoemFr_OlYN6%F5h09UA=qb z=7p`T>a3jSx9>f;a&xq~XQHF4sj9J|sC>E?h=ca?ORJaHHs-o@H#RTmS~^!ICPq7Y z#yfjQI=Yv}CYHwLCc1{Y8oMUCCoZjDSeaaT`|9o0i?@Kc0h0o=c>Ct<<%`$u-F^tB z{Ncl2i4Oqq^^<3_J-XSUvDWIA$M^4V%&%X+aQ*z&Comv7(y^78e2u)Y7|Ltuj=?XB~}qus5oBmF(Soo%%>bb+vc4wp3Tw_I0<_msD026ltp~``SAi$}6UIqqDlf z(SiQ;l{16Ay5a7Qp@!O}(aHIV>9zT#AFp3sUznR8(cQar>Cv6LQ=Prqg3_GCtW_Z1 z#wLf_y0&H)r+WHF+xljD2WGna&#$ge4~&eqcJ`VT*U*jd_I9UdF*=pFCZt<5cf zc>TkzhY#;Q0U7RtAMQQ;@&4B8_LXzDE^M9$Z+rdn6$l8Q+4U!Y5%3cj_3Jl3-@Ett z#zx|uZ*OmkiHXh4C}=1v1U^TjQRippG*(n}wzc)PH&vCD zwKX@640ktbs|%9S%kztx>gtC2`U?_MI_jEx+gf{?n$}lN_jPnv=H&u6*j`;XH8#J# zcJ9*F_WJb9(&Y4=)8}umZ1$H{Co1CFs+)AJ-Lpf(b3>y;tsOnu#_v?C+kP9O-Uv z9UmF!Xl=^O%uY;5?x?Ss)AcEp^8CE4#_GzJ`i7q7+J@>%ZDmbULuGAMO>RqupmX4lAZD&o*;_%SY%GRCxPiICZF0QREjZgh>e&_7; zVqI=grY5exsjIP|NY~if-_+Vy-!RzFG}b-1J~rFi&^pmOw4fVpt8D15X&US8t;{QH ztLqqO>K$&?&FYrVt(?1e>(RNbTeoiB-#)!_`Qr6oe);9*mAendt03d+h03(N9y z>dULzOA1?SY6jZ6n`>%2wY6V4H{3mRasBjU z-_TfB_u9n5=FIHe@Z>;i?|Ap%g^kTC=gtqdbk7bBUq7>bW&6yF$M@g7e0l%Q-K#s- zZ(hA~|K5|;h4sy~bE_+7K}vq@+KY+4?#1b`j;8vi+H!zcO+{r)bWDChQFL62T#-m3 zQX^zZGEJUDksg;?k(gc`rOApw&P_?HD=KU%D;?_Ts;{ih zOHA#muj#ID)E1Xbk4yuHb75^`du^j8uV}EXqcX2xy05ca+q5!0-%(RH+R@pNl`}sy z0%BiXQQ7L)Sccf$^^X#){h3y2jSJ)}pkc^4zNK`mWZR&ei#?Qw!T~ z-@L!Db!mQT>F(_Zx3ArK`sg{R2uEY$dhyefrnjfHWtsx~&dqm(KpyvCHRgZmeD!-*vPztFvnt zHg{&mW+(b|^SY7V*6#7HuBkrV#m&vm+J;LD^AB&`oa*ixX>FS79R#d9Jv+NTJG(Kz zJl#JqH8`}fv;-J+dU4^$J9pl^cm{wvzjg8Qxt*b&vF)w1AWYo2{6l*~eM3!6e{Wky zTVqR8eRgI}Ol~uoEB6X#31iAgBqD*pz_a9ZmW0DoM#bg|gz@ekco%1^e*lZcQ4qN* zr6N`hn3tSU284QjV_k7kNlsQ%SxHxI%}__zKyzzbMOmk|vA(i4Co#1$C9R>XY_P7b zF1w(myt=8frn;bTvaPEqDSf1~yRW8R*V;MTKUh;#-q%pqTw2~-R@G8boe~udVn=&z zV{K7&j3m0Xs(E2-slBnYvATVAW<%G}yEwTp(mk*;J9m0^^6HtjzQ*RJ%DSnZ!R7I( zrJ>=ezJZGyD;L*Rra*nNrERjOZDW3JUN^KfF*e-OKhxh0T*ReQD?sd{81;W*Z(y zBT%>~0yh}LCQ~DL?8tyXl7+d~iQ`@;?IBpa2#sRI#AV18nuI7tQgocQw6q{OAv-yx zJU6$uu^vFt*U(Uuo?cg6+N*6X$jZr0OlmDJFHB0U%gn6JD{QH%F3-tts%@+*C~2yy zTA3Wzb@eWRY;<_IyG~nIRMJ^hUy+%a8=u--S=U^tttzTaS0yw9VU|}3BIDH1?6_`b zYIwf3tX^AOJ3cTv-QTx8H(Fm<*i=&1t!?P8YwoMBAM5G5yuP$DI;Lyy0yVV$hL+Ke z_SqrbY+vu%^f*Xn7j%6~<6~z)ZaX)9{qlw9Pac7s=hsgkuU*<1?j1P2yms~C4p3{S z=SMqRfFN!j>+jN50soVtO08i<#)dF7ikwa&jZdKn$gD^lPfg${S+odGH<;-$Cv#I* z>l6N1f(S?C#Kxtm)NwIVd1gjZRYguts-hr0xja9+EHAe_D?42sJ1}VRE-aiL8E&nroze|!%c|PyYH|}Yijp!a z^YQ`fTB@7Ma!T^jv(sZzGh{CvdzyQzi)*uDQo8G#W`;(ZD{9(n8|v~3 zf$nW6C<5W*#)S*j1*M?&)md57Qd~CP*V9;1*;QBHR$QrTY3^@qY_F*9Yt-&+ZJb|Q zxq0d0%EHW(AAdY^YVGB-=Re-LJv%%;KQVJ|>kOz)bZF}UqdJ}Y1{=IxDTQAE)RnHptWtU4xE zCdo-kNL5HvRZ)3KiG3}NnK22;Qt5DK*F@g{&WG2%ChrIvI{`a zOpt3D$}0g@75RC|n)vSK#`>bN+LB^$urxiRIwv*DK984$jZyh&C1VAO~|gJaaCBBN}N)UrA6SF5d^Xb0V9P`x$DH&33M4BQxS)oplDpQr3*7B0doSdqn{G=#lK}ynSXU9-iTUAlsaBEX%y|$~a z7Tm|;wCud(l!DCS%A$(l-ab%3%T7+M%+78osmx8yNr+Hn#b?x&RkqbM*OymxRhH!> zWdP+23X&P>xZ1+v_S)Loocz(Q&dJ`vk*?06j?Vsu#y&ud+>-8wR&7c7cyIs8%=lzq zkFK+0PS<;Ob$M}obhx|o+~(;YZr!+b`BHUZ>FCh-+}PO8_I61DFqW)lt+pgTx3nZT zBRyH2Qo@p@5a}YeJOfYV(uJ`kek_G9fnhlarku);vA6d#G_W=_usderYGWNNmLzKw zv2m)HXlbN^&(DijXU50Mxcsa{AUmRldOLu#D$dN!O-NNo$~6+1S|};W&MQhyYc44r zZg0-Z%FT{X1YQe7$-d_Lfv&Eu`i9PiCeY4_Pi(6$t;x;JOUcSg$jpq($W6=Ame)0w z15gUev+^=xld}^uvXiolGRg{4(z0VyQe%=zGK%uz64Dg06>!?CH{K`~PkPan;Wje_Sj zpdhfewEK{&O-n(N2W<*%F_{88dsT3VMbu+(lBCVC`k&#@Ng6{ zl_iB^*hU7{M~_+=8QPm2b91nRh$G@;JW+yNmL9FCFUjtxDHT&Fat1RmF1DhiI3+&5 zEU!Sy6&7b^$4M0#u_;w~`SHrw+5#YG3ljk^)tZu={EE!%iu~N3<_2A718{rYwH5W{ zWku;JwfQ-nO-(@erX{9kCTHg+r4^^=q(vv>Cuhnyk(n_WxhdHN8Rb+$goG=Tab?xH zd9h+y6kAf0Q&5(kRh6CF4qRe(o<^js%FY9yp*lCWEVm*xIyG4lT~}B%qw851(*fCh zRMezMQwRyR(wKYbi6t;GC3wTF(x)T zwV0*KC$l3690`WN#Zn_eu{on>V&9>DDX`>2}hvd z@N&~q%X5ozlhX^*(n~V4v_-jT>eytNJU1bsyRizC%s`Him6Dd9npvKm7agI@Oh~FJ zE|al@zo;ZLLtB(rU6faqm)BEQy)Zu1Qe9J9QdF3h-d0%+d}*pWwzILR zBrCtWrM)O8zaT9!J0nRMp@@~MVpM9eG?}5u3deI1C<2li8BUfU@d5-%1SbffI3AfQ zCi7GXqQKP`Yk1V!$i&IW@T7@}i;YdNTqMtmQDkY<$qJR2MoW>4%aW3qcp3wbDT+@h zNX?Rpq#`OSCL%&9j8O1}38F|%L}YwKq>9BXOwR`GjF|Y^qRh&ItiqI(hSGxKtn{Ax zy5^e3g7mbe+A3{jUU##$CO@|@rywsmvm!4qPNqnWPpc`Z7P2HzU!;>m$O$tS4>ydT zFC7xhg9J0e1BkBnfp+E|0p4gHCqlpy=cQ)nq!y@zvSd|aW_((5bW(XvPJ&buFH_{E z=H{oQ1BMr+XBTB=6{Kf0R8*xTrkCXvr^Y4KRa6#cW@pA~WWq>3gD+rkBKcBDRDwvI zha!r?p{Q^SJ2adeieUs}IKfx}k}kuNgh(_UOW=k>@J=UvkLsT=(6=!%axyV-voQB3 zqnSx!DLx!onU_|VpG8Gt2ynE7$x#TTa-J|cA~Hd$5HgwI>xuF5s6-Kfiw6)(1|c9b zs~pr7ON(psvRljZno4qk3>#>y))wT}lofY2G=eFV7v;59mreFJ=B6drfG8KA$)`$^ zROu!8wXiUX%gHdSOrtCLXp{0Z>0^ib5`?un6I}@PKeKijbm;jp9boQOH;U zH%YCC;__o9vfQ}XtT<&|QC4STO;cHUc4A_6QDJ#bdI?ao2?^DOd1cudplH@uS(ula zR#KGPtgUaaE$^tSO;RUt@T>^F3Lb<>Nvx@Bz2xE;e9X|s=%^)FO^qFnn>tyY@H=km zYHsXkYG4!SPnC)jcnpzPEQv`Z^okV`3T1>URTHa>P%6aoL`{-1 zGBRGNiC3s4Y+Ww4|y zUNq1QWO^iE6dKLKlK51*5E6<)grSjv;a<)@md9-M^^PCaw>o;%#=y{Vmt)2*-cBJt zb{i;0xUIYKU# zD`1F$P4TE)311=NNQG>nm>Ur#j1_jK_?hTxGQxNsk+mAUV?M4YA-*o5e)cYb9svm7pg>2r5O*I;7>Wc%h6iG7Y!Md6 zgDj8xTUZ2GnERTWd4uf9^q7m;F((rv+hfMI)>iIrPJzCj5Hu7Y;)4nez|m8`$gub;Qy@-`W_68DocFsF2Fa_HxHqn7TPT;nc}>F`8th z1jJ#UKt={$loW0x%D~d87&?y`LBUe_G!7k0$Auz!RGxsw1;K(z zq%~HRfWW||)3OtyHDWQ3DIj4P461;DA(F`gJOYcsv(XqTJPZZJP+=%qXc#^uob2Tb zg9IVGT>Ly-{K3}M-u;A$wfk;cCdKP+z%nlzsrgspGV{-VQk=`NWBZrRZ>zN)sVrpby zWo%?~%)|jS3=M!>u{AMviqDzpop@<&6=(#o(ziT%EwqqNr#z1xsLuhhs2E6qU-w z<5?&;85T}}1S4QbQZN*U!!Uw;gIrI#+k@}Lo7>o!+nSpI$7Oc-km>Gv*i28)LjTAK zLjxO&<6bVVLp5I(GPw@fQq_9)9yn%qx2ba@3 zZg9lP!zU;x3~g-{1d>)4Cpd-6qcGGX^RH5~ij^q|nv~?!f zT11RAmPce|Cg&27c$G9UE2A9h2ZIHM;~-cH3X2X!F-Yw3;eo`scshrI4Tp2+92yZDwl$>`~AB@ZsZnhb@jAJ`QMOa?HcZ7Gdj1vOS4&_GFk_hUn{^IDE+L5Wwev z$$5);o+No8Cd zRuh++URn_m69-BovdCBw8x)n|vy$=(vnw)_(=$@?va)N{K=?@F@F;3RbT%>!2N;5Z zgR=mueS41X+k0gHJ^&Z! z0H8a%yYACJxZePnt&-Q7fwKjVx@dBm|bjira~5z zpia+9tpE@GMBuj;>?kst6D3Jx(W96IPB=UW0ttg5kZ>3V2}km10vZmmjme^l=oA43 zMgWf|@X%ok zeSJGq(*R3bgrge;P0N(T)Vuo748OA3s5rNZGaTK-Wm1_+E@qL*F^Z&ERc1y?kyHqB0SOw4Lxf-mNIWzQ0>{CTNE8~5W6*>&ijab) zL`BAs@C*tF6C^g96%`kquZT_*N+m=b3*r@w2tt!FEG&w`q(!0w!K%N{$l{2;m8Df^5L6Wi)7Uu?t?l4cZjn!D#KHZ?00?`(KeFdLuMvJ2@h*^U|*IiSd?>4l?tWiu&RU7(;XlBS6z=|N$@ zB7`K00v65;3M9%E`9+mO%IHL<0EMFk5SjjB1xYLw%T+*tMylfkiD}?>U{WTN#g4#n zA_!5@{73~`s^9}GRq>3JG_@usA~`iWBRfsZj&gVO3i1lZplBgsxNtm-h#deL{gUa`u2D@Eo>^!%``v$pj?D)4?4Tg2BMZL>!la7jns53W6Xe zGx$VGn75y$xxLx(09QW_Euu0I5p(=Ru&XDB7p3(G5FR>Yv2U-@E~&oL`~JH_yP$n$ z7l3OQvF`yUfKDcR_W+LVat~m*i|Q`%K9dkw?tY`7aA{iJa8}`PTuNhfLWMvS&lkmW zcp5y8=j#jc^9?7F02H7Eo0^uEm6((sosi5EMu}unsUk`$13FHlP^vVsiHWJX(%lS_ zp^TBM61V`XgtUarf{eJ-C`Al6Jv${aEjlJepo(FlkaR2@@8ce9Wq!i`_z8Pc^H9$K zZznGTf)ptLm?VfrDi|UZiN}S8BFO|UiNFr_gX6-{VcuaZ95cYl6Y7toUOMNr}!7OAIi1!(hm`T#4v@4q?p z{kMm}_PgDN9 zXcWQ-Zc;{qLd{Vn@M1Fs>J&y)B2N>?Q^m3qQzS77a#eJcN)wTkr4;iNk$gFq8R6mJ z;bP|^Wbu`eDl&!yhv8umlw6)1DUOqgqr)Ls22CW1h>PT@5rIe$ApCvc6f6ts4@ZaM zg54ktvY5wG!9p+)4<8RJ3lUEl5<(9_X#5~iZvG;@BeqBM?T;Pz3xp}%dW?)IDgpLYRhhXHioescf-1^NImfwhAEyLP(w=%ItA7B*oK z%9^Z#!KAFVn8ccd)VkCxZB{{ZY0Z$fb-K8sO{oz{qqtGvSCz4JxtbZ1BvHpHlarHE zlCl!gGG)=6sA#GpmaK`TE2Rn!K3pKi$m2=!cygqQLE{ie3@B&_#XKQMYLqcj1zW_E zM@4Gl6v-Sa2NXAQ(hIWF3o+q1CXGuWaN`q8rLuIPFgjA6s#0eWu}nOc6X**=BN)<% zBpxFwf)`CjFc=`y7Jy$%Ch|EN7h9(wpAa%u;N*<(4vDaHp%|FB9|9ukuoa+|n=cRe zF8!k?_w6+RSbg^$z~SI7IJ1dtRdNpt~HrlE+XEU`3F3V!O! z!f@FH4wp;^L5{-^@`NPtP>?A>gkxz076Hq_6ZkCPy@YW>VH}?y!=ObGh++(i1%(kE zY@LZn3XdW6c6P_Z$Z!bG!^PFd&)v)0(aR&m(G6qggfq8>=pC^?c+ebhN$-e_n?Dy$ zOffO@-oM}Uz<$&3_ZWQp8HaDaIq=Qb`@jBr-#1|W`#u2IH(x;e=D-)wzW)wT3s|E5 zZcx}`aMZxbFEm0KUzeWSlU3NCTdV_*#PdrBN^3^7?Mq#{^SoUtMCC`4=^O-=jli=4 z2#gS>B#a>pp>V^5GF+qzsZOLQ;u#59pr|cSCa}dyv^*9kiN%67Hc2LrCd=Y!vS_j@ zo-S8WHE|*e4a*cG_)-*424e`}OaY9<2t(n5u|x=oiX+oW;iym~27$yQpol;$F`Uf8 zp>UxnQZNi35`^%!urzgdwzocEZfS1p?d|X97aRl)3WE6C*f^S*yPH}B=o_3o2t4^d zll=#d9nrUQ@}!Y?xoAp)g;nrjJFlqBApGTaKZ&qBtaBeC@1iuFcJ-4tj6&b z;j$#GCXJ*@CQDWQkRMQz8a>ZaM`oB|pb$`HVL5*#m*#+QirkwU%%R8TM+0S0(+SyZG*Buh;#%FZau z%&5&wFWs%u%E_ukvNB1aP83Vy8G>kn6jbdKXh4Hi6je%;tOx~_Or-L-5@2jN3K>BN z!cs$MObmemA#;!>U62Vi~s_Z>T;cLK1;$&*54rARep0$B!2kVN6c z`iC+tt%L0x;fHqZ@i4GQkm&%|vanV(h3399X}L8Bau|Z_PUQMf`4EnT&JYj)8Ax0Rfev8_2qFnp zoxoBjaMg+IxJ0R3E{ljzaYbULkSdF2Nz`XQkF;D?Rn3+}x z!vB48eK?Vj&287#xd4uadGl?I&}E>0YIw#ru+68@7-erKr=D( zLXhJ{ilWG$H|$EG#MrqrwBD-_Ws>bSDx?DmYj?yRETlG@3d*5!)EDGV7Ch7N+@Jp&O=;Z)af ziaU{sgc5yx!yEzIag0DB*N-j^ri%mFl2Az;N}WWD)DV=h61hsm7qjUCLZph#lhTE1 zHlBmR6NxMl+0WNQ%#&xNRpDr1R5psjf}rt1L<(FK6~Pwp@DvgN3XXwA@(LC!FqvWrBhh0!cuHz(WHdfq@8Mr2cTCJCy7Mqd6dm-mbpxdioXz zLB#+7wbux^oqhWZ4UJp^pb=bYjzpEu7RC#u>Ac8PUSu*SB9X|@1coy0PlkB~kR4qy z1_rhkC;Ywqh-6NZK$as@7pvkcG>J8dS?$qDHBx1sTvL#c-jrF;n_n?p*|gNudp0_; zAPDN^8F&(k4FM#F5PT5ifH0g(2-?p*z#h~rVZ=ZP-W@~p3dK1isP0sepGX6f#3Gf6 z6ipI2DxN2eX7Z&ZmXLs;hq9ugWHIp~iI~7eNh9J4OFQ5=X96VvLkLC@1Ly)Oo=zZ8 zh!9jLhJs>nDJV)1jvkJogaJ<#PIQLg9K#9T2%!+PGD+CEDfCt+(&{?p2L%*$)ig&Nj355&9P~Xaj6Z78I7sA zt+{3Wl}(G)P4l4o3qlfsj0?pC0-q3qbq&F|(?xiyh=8Vr5!i@exPK7R6N2+aPyzx` zP7u5!g5trFhtYXKARh!#FH%L{O`D}L{sF%3p3W>T7l%hN`8Y9;6RSzW&^*yJS0oXn zPi}Zx2%d&Qkivp7t{~fk;k|Za9LgO}LEtC|2+{|M^+Dl-&?G1v?-u|)iKmCdut7L9 zgiME_Nj^}#GY%ITjIjyE+xeqxjLoeN9xwyp55zAJ*S`My-mm`-B*A`wo_`pZNRK8m zH58VbC5UGU6R2!8jicsCl4%?jofk{z#o#CsB#wtB3ek9BIEn*D^YJtVg$*7L<|`9w z5;8l|3kI@FhVsgF6%BJu-J4vVoC#|90xp|R0<||RBg7-fDGVQoq6dfLgP@o|3Y$cr zBR&0{T>VZ0rUfJ2!qDzWsyCeMfoB9TMKGR(ERSI-G?6@(5Qm|H|B^(aV8mq5GK-=T zGKEPwY627FDz4!~zYvs1Aj~xcZF%_U@n}dfd|0%?pkuMY2SRQL!b7neEx7x)SY7bN_|P=1CYa6o&Vv3CI*Kk`;j= zGNCvchApC^8NO6OIDr#@AcqhcGzc^-2FhW2$6#~NthGN~^ z1FRufNI=xg^MS#gK_*& zqA(QC1b*K;Al!pMhM_Rwp^y+JmFa0^10FkBo0}y@C#9yJ*G|0iGum>mig&*dhTE4-Y}Q0^tNB04L@ajJEgi zvkb<2dqQm;gDjkVZ9GDOcd~T}v~~0`b@a9J2(fbwu|DZ-y>Fk9g$?9{J^ZNA$^D0b zZZ|k)YGrC+qHm;UVrFD%Yi(?9x@V6bC@<*in}G+ov1twJv=*VNfFe-2`MJ7yJBEga zI=eg3cro0_1c?SzJ`+sLj~Sa99=AM>r$$Dqa^utM3u`9Zb=Pn-wx^GaySop862a!j z1wwrtJwZO@=n>!sTrLdbk7wiQpzszCXhtX~Z;OZ$3!*q=0h+)@5*b(w6lG~-;_Tp# zg<Bvof@LUMpa;7Ab8wvX={Gm+6;-~M<}!7 z(zW?j6YZndnL=qG)ZZt-)x*OT3J->%At8{E0EnN9pQCrEgNx_M6OP7yXiqd3E|$~5 zSGwx7qnSBXNtrpIj*gEEM$y9H;TYq?`dlW@#?tzPt+glyCy&L-lxV36Ba$P@f-n~N zQWYhP$_=NoKn@7O(R}fYAPPSi0fHdGIT&vrPI96M;0!TIk)+h*rQkr=#dw4gq0Uej zmmoVIsJES$xucJ@ovXFgNmDydGq=zacAlp8-e!(o_9yIuoP2Nqr~`-f&1?+KtPRa< z42~T?3Ot%Y<+r}H>>=A759%kbdVCEcn z!ol}gFgiq*ScM>}4(VB#SzB1yAGdHYv~)H(?qXtKrl)Um$n=EO3452L#>NJQz&1?| zA31Dbe8kei41C~Y$Bj))4b9BWjLnXkS(+p95_M{QQdUEBa$OjV>g@~jaP#-{0}4>2 z0^f0~7;YcE5st^Y_@49$@v=K~4O|vi5iU|= zXv}aL*9S#*!qffX1fVt@NL)`8#RDXOAoYfmoWn^D{z$6;d{`*R9(Y(MKYN6L4i(a! zg4}FeZ2V!c01Vm2!_2|k!p7Cq%EQRY-PkqI271DITut9zKQFWf5tP|n#i)G-9%9fY(CLAhc%{v=sASI(dbh)g~chJgCJy4spq zaCj7s94?Hcv3X=X&7b!FRd6NEairJrPdF^i5J2y>bnW}T?_JeZy`y(5jfDV60w72Z zMGj|Z4mFa;3VE!tLW=@x)2r&~llX9kb0lNqTBfw=T8FI>BE}g)Z#??)yMO%l@BibQU;Xj=_4m9fpnRM1 zQG{vXI7?9yWvDpM)S8WY=TQUMueCpiuX_+mAUaK?-bS1CW}Sl1Q)@SnZX2iDoFvd3 ziP1R0AvoXa@)#j9*Dt^O?zeyXr$7DoAOHNnSFeA{>NIDPoW=^OYPxY&txnEf&espT z;E@F9#y$yI5Z}>l$rWgu!6J_@=l*QA=vCmzl~HK)N_Tx>&(E#P`{d*%JiE{4XYP2R zkB;@();Zix(t%#hvf&J3FPar{*~l5}=JVSp%h%7hZ(a_co~G;KfAHIA( zy1yUZJ?ULt_Kw#ObI2BznOUOGaSn^J4NUB)A()oI?U#S|@rOTr`|Ce``2JsSzWg0R zAsFALSyq!}mX+&`&S(372?*an51Pnc6Wzm^1|?xAdGGmVl2{XMj#6npP_(3S$6MGOE8DBQn#;WzUoDjBu`xa} z{E`g^?0Butm*dUJY_mJer&&IX7sspX_g}7F+#TLOi9T&&t8|tgo~^}zn?20t5BK@i z#;77CcNv2@J->hc`mYD;g>t$56+5yC0fXny{_5SEzrB0*cG4dwek@arrqGjPZGC2jeFn_BF=&~Q46u>( z8Mja6W7P=>h}Zq%m;e0pZ+|$u*yTezAE)*tDzA?Tg=%26TB~l3(#03AFTQ@idU-#( z-SyAsX+KddEvj-m^!>1GVEcOLXl^LGn)(Uh1<|K8pC+}on?;A)3n1QkZE(i0i22cBvp?i>RTS8LN zNru_v)r+5fasT1f^N*JR+)-(Jvgvm%zsty|*CTAN8}-?^0IerkDdDDUHPZ)!$?o)N zoW_gQJgXp0;jPY&;wtM37((xpYNxt7E1q1AZ@0&9UYx&syM6O~e7Q}_QuSdp`%ypV zUCN3rC-dw~3Ho+Wc(O+d4$hfv&SY&r1mHM+{3Mx91y7cTkv{A5iAT%2AgG3^sH)PX zu_jrocMmA0ZTm7QgPcSOrNwGE#@0z5rFf!49#BdL;pzxer&L7r7(wsquA#Y#U{FRR z*)ip&yrhe!ZkvjdCNZzdoT62O`O|kF`=_hH@ri7D74XO7TiDr6`m^h^XS31f`uzE9 zu$?w+ zFTXy&`tUTrUYnC3zZp;NPUlZgkG_0ZzPg#5oUD$XrTzJAy#{NmT=&gPh=!IO$!?-s ziJ*C$X7O(1yMduOs_E;~6ji}4_jikjyJR$-A3lEeG|o?JQ>j>u9%plqKZul zQb&*wDWhcn_U+Ypd)gmtTswMl_454qYA_gDJ>JR1q%_^!W+4|Nv?Yu6vO+Q$ z&E!m9k(@3_4@O7*)LU(jVdr1=%k9yXVamEENpKEzL~s$!!_&g2RG4%P$t466Wwf?v z;i^r`J|zIrH4xcHoQ#rO)QaIq)6rPX=avz3$9((?%r;VoWt0*)6b%0#%YRK>9d>V z&HML;<7lQNvhv=ey&6*E3`z@eD^Q>j1gFbeT|pOg&yj5z7ix^y5_Q^(HPz?(!>k;Y ztlCx_T=To&_NWf%O58~p$?hs4D%x$uCG?O~9D>(T*&#)vE9*3?kWf8%kd&LUji_PQ z>Cs*#=rQ3}LfF^5f;Ez^Td{7=8!@BDw3)G1${UFYXPagD`Q&mwKG`0g^xW+F;^EoN zm!XxNZl14ZSCG7g#Yv}A$GQmGZIcwr^KF*HIUY_IWBZ&Pa^qQ^SK{^6laF8j@WsQo zAHMtQ`itH3Zyug~fP0XhY;We0N9zGUnj9zTTo7$qrzKZoRYFY}(Is0*vySdHsePb( zq|#(`r~vJRGPITAsj_2}9PllOWYtlwP6;i`Ra{TY%S1E@JtEwK)_u;;xo99-32BC` z?9d$aorM|zdL|+InBbvS!txr%$cUhKpnAOVskUl_Y9S^XNHAp0kdSTMA96v-`h7ku zrEI2pfG{K8$l%32xO}Fkz?O+;q%<5ryyxcf2ft&uO8n%yoasV7_!(y1Dr9%BLoX$l$KzDdNUXf z#y!vINRatzAjvMN#vD+c4qw+o)-7#41z@3#Sk!E~KPckl>|>PF z!U6N8hT>pG21X!4>uoiL!Xk=~y9Jd^WUo&<8EvI>I1}TcC7HCHNUc_zW3=gD(+m2k zR~VB2H*B>FqWedrmIcIiY!|0p4K9LuFXAB?6iingNTl zkYfZCI44TA2?5wu4d1s7CoKK0$m zn$D+bkrde4}7GFfN}FH56*)mwZra=^(NreLPxtZqkJ=Lzvn4 zY;$-Ky94Nx>0q~BLX_jCf?X7+i@a)xrbLo_mr^iDAFz0v0?NV@{ABKoCeCCQFBau| z)q}*s@#!`z?8mqF{h4#P$(Kii@g^8=6Th!TMFPZL(G*?~2h)Y$^Np0#B26~z++4!>8l!i+Qd5jD-bJLSEw~`)>Vku)UYF$BC|Q@__*os@ zXMnCV3e)P;_G_Ot@ckB1gMc$Fbvr~Ir5hOE#Ar}MD8aNyu?>kamcbFa1qV;EDBu;K z-2GgXO~#5Cs9QD-`h(mHwZ-CiHr@2HzM@z>!zB?c&ac_lVKbI9!)O&Q4cwbA#*`@?h3eHAHjp zpx{TVD#`P_7;e@V9$0Ca>-I$>g&sllkns8ftTVh)vI3nB0Jj1e_>vQ;@!7KANI)L4m9O`YOf&DQ?j!J{@_N2xkg2BR8KD4g%0 zbO&MDEv!zfco&p7(~%j9CJ;*M0)z@?*MLiw35vxSG3z8^Hpr*L!?UxU0wx4lSw%lC zGLB&Z=g-gI>~?SFqf1ZmMM`aa-bBGPVs)Mp>yHkQTD@IsHXj`bIJ+FK&KKup6%U6& zui~Pd0l79wJGCJt9UY|8n z7-0aUgx%x4p6Cx{CC06u4AKDza8eoRNbAi)J7t`bheAmXQ2I8^cOxSN8|PK>Q+{7z zMVai9EtV!Y1;MB`czq4z09-6eKw3zni8MOhCdeXM1a{rQH~`>%oI*lBVbKoBp+GHw z#aS6+#f+WsFz7w-BrRc54qrdK$v~Rfz=~}+a-2w8iYZds?&#Ig{B~ZQ4T3RXl&%CK z*dQp=IB3BBd;ha~{YM7}Ki=~#e>GZfAfG+#+dk3jtFu)(oaC#c`C>iYTuecWPgmJ+ zZLN<6oAa~dv(0drSEB-g?bR#>GGix%n~-tIcs({Kz%qirO$|!U?UBVq>>v8DvyO&> z3bQF?C8MJNEf0ZR1M9#wumtr_yUAGkhdXyswyk6Ub1GfJck7}PE)PH=i znHS~2DJMplSW)84=Y#XJljX^<)Wsy)if z2(V0(zLbr;auUUbX-43Ouy8Dg^Ee$yV1+qQOo)h#V^VCfa!b(KdW<{0u4JRU4v4st2mL+mL48+DGn1B?6FwM_e{|~yD2mt^9 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testTrueType.ttf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testTrueType.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0e1487bf2024ef57cfd7283aed7c4abf520ff9c2 GIT binary patch literal 98724 zcmeFad0<=BoiBdQxmQ=RB+J@Y%aSb1ilQirtjO|id5Pl~$1%njVM5|0&c2hTCb%I@ z(=^aD4Jm{*gfyiLlcCf&CUrufETt4ErIa#E$}laZly*uf!($j8B=Y;5D|tyEwDWuO z=AYk0v88);@72}$ZlCXJLJ1)S&)ZqL_H(j%Q)2(Z-kqEsG-%q*^$84uJ5d{$iBH{uJi@=}p z6JiIk%@o+W=)V;4zQ+`go%<=>t88Np@^Ost^(4fMOW_rD;zz=dyc5qByx>1m|KUxG z&F*lz3f)B>udmo2C=E^vO%KnA%#6;8mBnW#%99n9Rn;}Mb@i!+#-`>uEpuDvwO!Ia zzhgn?rCpbGU*2;?`pVv`7GAw*ao>`q%lenESh;HTnzifJZ`inL^EF$(u$6o;aP7A1 z2EVlZ`W;{1`ITK?-Tk#aH{AI3z2DgP&HXnW_}0z09K7|m+wZvZu0wYpzURodkACOg z@80)!_y7H|e|X?~4}O2>pa~A<{a=3ln>T*@=I_W`zkmA=fBIMQ&Y$1?%X{SC-p2|L z;VW++m|ggetfiIdqRLCQ&zRFFzi zMXE^+sU>x!9-PrY8c7prCUZy&nM+#9JkmxkA?;*7=^zV8C%Ke#k;_Ooxt#QnD@dAL zNqWguWFfhlEFz0ZA6Y_{l4YcyEGH|-O0tTqCTqxAvW~1L8^}iR-ez(Q*+RZRwvr!$ z`)((9ke`!d#7OQWN69_pA#$4hfRvEKo28}bI!$aUl`@+SEmd6Eo56MUEaf&8Al zO}<1_L{07n_iraV$WCzNSIBX)i|i&}C0`?Z$c^L%@^!Kon&TVfn`9r^PY#fq$n#`` z+)TbjZXpMuSvBMZ@<%8r1$m16h)6_9enw7`e~%a3;Q38x)B$`;{*Phb z8X}IpgXbQiQtZI-uoA*nz~>L*N*i$2orEbCVS5*m#{P)22C=;Y$F9QFk79c%)`oxs!r+Z{_+5A5 z)+ni;F+}`zLnIm*C8-&6RyE_fVa6qwrRS^~^6vHf_+v;FcKIfE$(uN9(-4sl!uFL{ z;a?-XYpIhrib{!|Uzqd5DUEK7V5) zcFdhYhlmv~T5;3zi+M91qN+e&Q`+IOU&(LjAtD9%*YR%}hRMN+xz|iF`C8x?l=nYG zNWI<5Kd`38-!vpG@k6!hhs410iXqllgZho$EybbkH`oLinlECdza0yHOZ%R;|2e$%V!vj z{G=ZK%wJrA7xJO$8HPBvuf!97?ww(<@#m{#&cus_GsqD2x8hs0((xA$5vs&nUj7Ag z(&WoYQ}GnB_)kcaf68eWk*1PK;mJxmmnURGMO+f5NAwsq8#yihqtY z%^sJgL{6H@bJCO?m!^twX{yXhQ&moys&mp*GcHZF7n7zT%I{wmrXeQF(vUDkCjMqo z8WN|R^_h}1q?nW&E=WVtXybryQq||EQ>Ls z5EyebE17MYQ!S_pDSt8>*lF?K6xTlZAX4T^9#3gO>S_PveJZw<9rw_ZaYq*U6>gK-$r!{;fH3mzArG80S z9JJWVY}V|n37=thvNSO}S#B$f z=PsgD9AWnj+UeCH`Wc&1y1g)Oj;?oJKxNctoYtf?f|>EoKJ}8V+z;*2xs~atd-PB!e+!tQ5bj zHl;0=j9G1*rV=)-w(?|oP$?5lDfx3`qotf ziw)J_?0=BGq}KU-$z*rBrqb`z>U7wutmwY0BcN5&r(gTYGe^>irF}i2 zuD-t6%WnC0G25~8#h>lEfw7JIe(PwS+ge={C=Hj^)wj2|&1=I}sh{20IKQ(U;c&>6 z_z~o)i` zrrC%>!3rrhCYL-cFZl@R((|P(#8Qr=>SZ~hD!g_&X6IplqrAi}zQpoc z=0ss)2@QcnOc67bW>*rtUmj2J1-?Lzlors#GF6gF0#=*&QMsg3X${6eVs>q98YIh=hoMRn{pb8}%`H^@j~U>6GG&ioJ@ZDZf@-OC-un|VhYtFH?cU88 zzIZUOb;}pGiZRLMyeb-{Z?0%t!D_=;H?6zS-yYBWq`z%>W`{4;;Pa?de8Hd@+Q(iO z-d8dp$5t|$DyBkneI?c-;B`Vjv^LZh7g?bn1P7w8E*fT5qIB5qvjAB9i{4_m7~;ne2pdu9q|R>7lKuIUx;3y-7PsK zaRTWnrOE(BVQ8J(GN&O`TT@+C;`e%l5=%IhU+gP#7rG<`qoqcyX;Y)%k(pN+3;IoQ zSx?9sTh`j+!XFp>Tyu;oiwOe&UBM6b8{*I=ajyJ@MGYUn-|!z>>8&gjX>CpSq!+gO ztTxu#+W%-@$R1XkXYYIP*w$+WVNL%{wT-oj@*)pQ_iP_txX>3i$B(}7#KD6wki)~7 z7e6_=p`$&S4267wYELkjTw7f&-Z#I8uIXCK*pj~CBa8YH4wo|!NLDP^+1SFiZoW6O zqG$Wc{^voJg=25Brx0aUB0KO*Y8n;rQCMVuksVZNsjv1HnzK}4YNbdtYN%rmbDBrT z-kj9i$BjO<{iI?*(ZQ+Ym6U>#1*S2mO0H$^>tYic|C}?E%qS5ZQKtNakBV3kwwYHtLx9&pZ|9#-3 zCaik_GBS^(W>Ddh);XZgRkP#KnO2KIpU1_(D+#u?7M3R}nG1@=9uc)3Nmlcr)HI{| z(z=kkzhhQ*mIWt- zM-75~0l)Rmbg!hcg?Ajj>+qpeFl-L9flc4? zMnLRR>6FK6QERlBclYRQ=1^uMSNXd9%1CeT>et(8M{GG1ztw}4l9gMG71%3lBAGYu zI+Xd>=3vn15%~$CN-}tM)9~o2536T63$#ex;QzU&h5M1U$w$WR_EaGix}zbp4kF@c zat8%Ay+Fxe0Sal76`n*|s4e9-s^`s~IV0p(DwR^V-DJ?^b^x zP9c_Ql31J$LY7usp30Khx4538cq{j?K(OLj;^b(AjX2A&Mx)87%bcmCwj!U09c!K2 z-r)xpHRuiB{ifMfCHcr>Yw;i^=`Gw zV0T5`T0JXtd5(>+?Xj(iP*7!5N}vwMPrHDh=0M(FN=>IiM?*d2Ek0`oM96F^(1{xL zRV{Ofs1roTm12R;UN#f1iHV(}N9bv~d%`vG=rkwAJ~4V+@5wqTA+8!b>wH`k`31Nb zmZ_AGR+Gv_BPM39WT%Bci;IOpahGu0UvW?-q3#JTh%#X-W&PN5ITU20V1=9F%m-mx zuy^FDUct(x5Q5|9ph~9A`BDZFazAA%vf>CJ5u9*Mk_l_v3V9nxzjz0Z3cplYTolAz z;-1|PcK5j5EMH|0@BH@BJMWs}s7!HF?mBejo_d?pWp!xtMTs@mKYi>$=^dRe7;9;r zTag5^GC{-Akib4VmF{7z4Oq@I4!ZL7{;Z#J?kiKB6pqLwmd_Dce^rsh+B;rjRn@6z zQg2{+%&srct8GloJkKRib?yatD0`7LZ-?*cqe6SUEG!X8$sEa$7cEjV0JaZC>AazPMrrr) zdo?bAl7~g7aH&`=teeoQQ(Vrhpr#7SVzZ*tL(`xRD5-$?lQruP)OjjNq36KhWGL z(5HU7V<)?Yt&3PgqEf4MyNlc6AHSG`gkn^ZqRedSs;#4o)`~amej)$vt=pN?kqA~L z!-ta%&Cy!7OB@_L%wv!T#!gE;$VJz~r|c)6q#{)4Yc}h!?)7>i6sVcw>Ny3vLdYhw zmqDR5&YC7jh3zSgi_T#MCz+3)NvZWsQqeYIaI1AEg%-g&Twu|iVil}|`BPD?I(!OPGWr;;&JlSsu)tr1bLb|Or!U|Xws8F$gMW$uL#j#eLUI*w zoQB=d(J5{EijMh>4YQ&%g`#l@=Bineb!=G@ueb{(qZ?RL%eW3M=NcHcHJo;1Yx!H7iQJn#uFB>80vEA_B+ddt$Tpv@Tx%^5TlSRKxY+Y=2}b%je= zgC`UYZ|e>pdtg>nVqzqiS?X_S42MF&B3R+f%ROfw>|Uo;b?FSOySjdHjn8W;WO`$} zLBC@8ihhWFwt!2WygZ*0x>MAw3{>Wc_uT9h$1Q{4vf7nZ3T}wP&HGBikBbps8Y%y zQ4T*HNsmTdRiqY-S|#MOvD7Jun!>_-sP1`C-6gbYg?bIriO4gXND-kl`h_*7UG7tqIS7q2hMDtvBTCrL2pdz7oUC{?VKz!*!KCn!m z3@_zmJ-@M`zA;eZL_~-CY$;7yY+A6;r4R)bCwIbc@KcMAyQ9G@`jKSxlMwzELIw;z zDs88R(DVT^1eQ`y3J@|BcD$s!ISxbYN=Gi)aU+^Sd#{H!6HYvcpKW+h?_s3 z7}sPTq6^^t9$+5U0E&3Y@|1xJ4hkVEB+R7}oYaC?URL((TD4h;cU<`*qz$X-%J*V5 zYY}m{VEMAHE*GFIo&hD9C49n+D4-z9i}hFdnl)UUEj^#ZT;Q&1aMu95B+gyek?W~H zm7v1HR0XiX_1CTIF7gV>0`?`D+i+WsFZLJcT5F8LOsC0c)N0hCy)a+xq6^q5(JyWn zo;|LeCl#E`a-H6%=3F-)+Q`QeOm|%CGv=JBlu_N)JR6_U*EZb^?N(D#D5!<)*A;;m zC5?3bmtd9F=xgf|(8V7`QX{p3}TEz-<|W}3p0QD~;O*$ny}R!fIIt(l;j z#ubys=k*kEmJC1-oq$(d*}!$wa{NkZuHQa*{dL=}9T0HB3C^ieuB_&92jFTPaN?TH zn>Gr?f1P=`xhnN%l@ot8RjZYsr`IO5n#C-;&Nzn~DJ~RT_sQ46*%s`B*5l5#f;0ZW zouAG4Jx5t8_yF74*j|eIA|JV)ej@3k9QFm_Hbg217oCi?ju1 zlegVr50tJUW?0?wMAOv`Ee^BWZHBk!nB&qZRqgG24#^@0 z8LMVGwhi@Q3*ozaz>ysiTyICZMJW|K;Y{c?YK}$(8*mKp=ytJkSU+EyV6?Eh_@rWu zB9WS5RL?H8g3%ghXrb|9a93k^e%%qRNQG>FaDO zXj(-cN)=I|3J^yvILtbDg)+j40pZM?2GeyZ)QL}Q5zY>4n?TgX>=5%G*SfPrtxlC1 z)m5?SGK6uI=|NAR7-pXaf=;6VFztN(v!JyH2dgXN02CE-04Pj4V~H9IN|a1Ev`+( zXUFSP-GtH8nPad_J#rSiKBZH_+5#gGD!Axn?9|x%v@&xnm5)r6$hf2Cpb=Q3zpz>K z`>cVUmRHHb6As|}S=8V+nDE0Ib|W@=n2nxmJ*#E=&us=JgKWQWhJA$3ai!D(m7~A( za+toS*hg&tLs~Vz#4MWdS%foZJJ|l!t2zC*(n?{k*ojKnz(Z8vS*VoOpfAvB6e2E> z2cMlMM&Q-y@`XIEXM-`+U&oYr)F!`3QekgL=84Rc^JsnMhnLV4t#8XbA&Tvp$7rf8 z^Hk>X4%(P`yp5)~H#9u<4n3mSj>_XwvLrX=OMihHa$OoI@e3x-DqPfETn`8ae$zZO z2j<`~)@Bsq%ml5TFy+ET@?O4!-tKVKCf)9QwYpl2i8WfaM&8LP4;Ki);q@qWN zrizSej;?|4m`IU-v?~z5WKOCe%zQP%E%beQfH8VFrOv-f8vgCBKkmteE@fy3YRX?< zRD#wb>?4m&X2A)M8RLgJzGdqlBL}QY6+P$9u;95fxUV);RUE{9xlrxBhDXNTcB@gR z#eH}Roobaxu;$ER)+6~K03j`5r-a?YlS1pTc8PR~{)vU?gEBKA){~9Sr8GtZ|7hZ} zaQEL+BHsjk+7^Grz98 zq4sUl@56sEzTL2=f%@_5cg8ouZ)9!_XI_s8Ptsd5>-f)gnKuSAUGzczGstr<)C11n zm3dh>BC-u6QB-Bgqctz|RA#c-?^&bQ=4qg~qGP+eK-cB%3>sxE-FN|AgQxRaTe zGtDEcg#If_(2tMn0@5!>>GYu;qcnbemu8vzw4f5Mz*=l!FP#TxvWZ)6UyS_MH10Cj z@K9tU=RqL|Zq)Kk506pG=w&|N?B)jxCF9J=afN|H3ZC}^sL1-x!GvG-vG^MX35O)g zd8kZgSZg&k#0?zLP~-sckfWItWQ13aB%=JV2#4J6cr4Y>8ZAfsjNn!6YXtK>oR$J^ExGnZ@-PM=czL z`mpOnRb{-ahI7}Yh`F6uzi#asVfHv9ar$#D#~B0BYB}>T4qN$qQ{GL?4rT#tjK(RC zwaO2knaBpllVBmsMcz8AMFwQC6%GD)fbHh_P%_z)4hPRZE#>LmbFsH#eh7Oj zlWpl>fIhneKuvMmEyMfLi@4&w=t*S&CEjKxwjAB*t?jq#p!kZYg^|O zSuI5$53<%sG!|LX6LPv)U3J^82fGr$-mP=H*x|^mSOnQ_S0SsfoBQ<#79diL?8gG= zj`Y}DiZh6nr_ph8J@ur*RJf|d3|qai8#q_GesFDi!OTL6D5~ICbER77ujCP+OAxjj zfLhQCwd~Ci?N+HI4GVVM;89OIiFS*QRNSb(e(jno6Hq}VUb|4BV~#CzHR`@vfi=XC zfwXINN?RImz)(o}lX(kMKSK9WE4`C?hVvr`;}r>u*}n*b?8D=l&Fb&-#N*{W@tD?Z z)SXt8DE5d?Dn`UVj%y_uNR7MxIYt|yM5zVCxVcG;f^|}w^c6jqFX))xzL4vsO)|); z;UNL!xa@!^EWjD83Yo5y8YmioxpO)8JbeB3F9}I7TOh~-I=M7fmf3g&7v59OE8;py z_OfKQf{Nk?@trtLR$wx>$!-*XN7h*U1vHqf&v>wxXKbt%Q|^OuTqz%`IOF#Pr&Xnq z1`m0fYb_D01Em+xN)~-p)a&M{nCdEcU0#>l9;>-`_u6j6cH27!Z|m+2hiZ4Mig|o& zQSY{UZ){1n_w;O8)!trt&drY3#uF?Y?uq$}Edgt?c}~yD+7vvYLXXFP^UzUW$m17# zL!p3s-R9t26nm((1^E1cFOmurL*?g)ruef>jij_SL{j=*+ z^LI2iGj>(Hwkui9SUlP#oI10;Yw3~|U9~mLV)eJD&kk0HBWyv(vLp|0dEDNY9|J-I zj-X7&5gjQF!Wsne3pxQITt+BGz6b3@P<|A4>?$@16~@CD*&qhTgfPuO2`p=o@7@gUGybIJ*Z#L;$>MMFhJA(fxa+t{&>t{$aixG$UX35R1@`^T9}$hU-# zlYCiesrmJj#FP!$m!rl7L^LpD*O)Gnc|>h?w+15NMCA0wE$k1y8#2vdx}T}OwQqE9 zYfDpm=+`g2n0X;Hn0a#d7jR#LxUV$s%Sz^P%xG1~*j6tg?yZ*?Zt67skTuc2XFc>p zRtkWXb2r9qt&#uY0k2_2_CEQ|>5&7B0XdB;K3l9jX%tw`Tj|Xa+N84PTOHo!f#~K{ z&oKG{-A$|aYzb$!p8N2o1IsSyXxVi~c;C%5L|5{4yOa5aV~FwJOrGX=>gN4l#mZg3 z?wTcSE!82rnR`NxDEz2vL7?qSc~X3xy)>+!ti>qQs=speWo-~T$5(Iu5(y}<-q{!C zK|tSytYqlmC`%0AIkD(d%a2ld`C65d5(Ag*62Rc$S}xK{IUTlfRDAQd4%{SE;M>c9 znCISP@AwBjmtWesU?E?d_57@_$%HHCYs1Af`^ZT)WN|#F3OW{02!1k4+Hqvf;f5Jb zR&jLvY#w9DMoBz$Jn_n9o~P@0*aQzGRpZuNh9|c>moz9%TKQS>gCCs`jzKVE6<%M$ zB8rxT&sza&%4~MO$BtqftHV{T&et+gvf037fq=!z+)fm$Y1MTuv%_q$J5ZeEWRY;R zp(?vRFb>F!fCM${e%lrMvYRDjXviwaG#UocJ_DdEw(0Q)2adMd7{@L zWwiv7k7n*={u?W!53y$YSWaqWPn@T4;U&V$^jUm>n8NAI4PVQAjb8UPwq}qn&)hYb zIZT)G&tISUAw7Uj!$Pu|%VnWX3-1BmjDy3looxEcqhlYXtOj+V4*R*2XEZ@%jmSRk z09%W6_t36UdSE!~)Nql_I=Nh93|p80+$oB7T;qq1vFU&=)3p543uA6)Ms zeCJ*0{?wBzQ+g`s`C{`$rF&S(8SXXb8`OI2<8+o?W|0mI9T=s%h7WSRF@Bfw>S|D} zC9kib8edvLnOjv^ZgUVaL3jDM0~`qWVsL<$;z!;t=3Z_LOExx;St0g8_X#AH(o$6I zGaCc-eJq!@%*7pYQS=K95RHp{i$2+!R_y)gHSRMnLeZUl&0 zDf|R!wzmb(q=n#GG#5dXOK*oQTyciv;!QW!g+r#}ZVzX{O8!o^+=nw>w&*J7h(Sw@ zGad?(Ww?VI%|RoSzh#+{2a&msv3dUki7e2$6w0t93$FwKqRW?8THq)_fdpaBL77Mr%30xTbwDso0guO%XGs5KbXunzuL&Q)}GRjAc+ zQ6Rp5``BLLdGJ>YIi3nop``%PPNlM?-;pulrO#w=wc!iTah%jf6n)kEAzq|6Cg}mBZm?Jy@%>F$4FuNQOzt0GB z=5!o4+_U-O)Nng26y-$ngb{(bLLl>zvY6n=*=0F%A=}D&?(56m8n{nRQE(;59~J~U zITVLwjbrQte9X#g2UpK+zgy|nTUcXl$GXOPwrJ7r z7xuO`HMb1E0Vs~r3K2HCv(pxjY1y(%J6mEXY}+sdI&?wKUj`le$?sDoROs)iA|eRU zhsxn%RANsz7U&v55Yb+wLptF$q!Wa^%tu{(qT_TU7e z#_RHBnq@<5+!RTi5=Cw~yHL$ZwgA6Q^elobDoGsB4z+Jq)yYp;__>* z{^Py(iS(`GD^{=r^q7m$x^|y`@WcOj-~nEtsWbZF(L>w13TO52eBj2LM2j^7d}FtX z>GF~Q81$ySf8wa5543p?Gcw|sUUHh-%}Zy;5vWI=tR{-$Ws6dp2W2JL-5S)|dsq&g ztk2ex*AE*Hs!s{s!WJQsvTD`MAx>Fb!ILd3r{7_Zjnbl_#iKNMe5njoHVQu%bi#W= zt{m1f5zNU2{5e7Lc*Ld%%z7e@0yzqRjaSL2-4T7;OR zk(Snu`OOEfs6<7dKUiJe(p=9yl+9zWiA?b^dLr6V7W72es0@$&I_A=%Fyy;(B1XLL zA)p25@ElM%0VqTYxIHeFR}M{BKrD9IHgnel&QVVPLSOp@nN6`$HdFy{^D8rN&cRI@ zsmRXlGzLvNJ=Bz;;@Y^*qDNLf)=S^YoUL3Q@xuKK`JFahf!3P0o2nIY#MUJ^n8u34 zxyLJ#F_&F!U>W_27yEkBCJW0%x$^3EulOooj~_s(J;Eo%8w9S$V7>z%{DOhz;^`2FDqZbJw^b zgCKC$I>wwZRglD8wxBDW+!7Ze}ezsV(kkCm!|5OxP9=pdj|$td&?S6(ekF& z2w?F&kL$ z7xz7|y<fSSZCMHbK>sSc8Qk1InW!e z^Mxa|&=Q;yZ-NprOgeg$Yl)7sm>ya}=?J?7Rt_q($Xdb=)QB2hE4ms0WU7%%r>Gfx zgXhv^Ak&(%f-pg@C9+ol`5g2{HatqrLzj+H_wjDccc8$RAt@&cZwT(3WxGI2Wc4#w z6@^?K%;5Z-lwBJ%oX81m2}dy~>@1rrQ%BB7mFFBBP8H6{a_yc>o^dT8BM&Hn zEc1hh@E8}0T+D9*un2Fk6{|DPZQIV)tv#`^wW*O6z|ZlxVzKs0^hfD!*0NHYOI+OB ze%IPnbzfjVn%&U2sv{DynI)B4<*>)fE=^aUU9x3Z$8w_e64&!b%fd56^Y`B$^xRFc330~vG z)1ujhmld?2%O!2yjYle`Ae@W14@=KN=f3b&^ofP)7qa((DkY>F&I`)3bZcv9jI8?=x!47{3 z@PohPbHX+pDxd$20flA3&!*!!2g+aCBm027H|$g2oTuX_0PWO>4&Ci5o*na*l=xz^ zi+x&zcA~z(WN2sof=*;)&RYsH8RlWu6)khhgH>H!J7Eu+$%}}XZNr=aN3PldT|W#- zb4&PPl;jHnZY&TB=FvoqT7=W=oP+)G>Qk91S$nw}sP~pT(yV%t#q| zJqJ{+TyFu6_?{%3WQ*wA$MxUK7IV8~x*B^{B&U8y!&#F z-xrr$IjawYj)HgG82VUf%$7$j&HQY}-aco0k>0VD9@?E5$_(x1_qKlQ9rl7^H>S6h z!@~tQEiaony)?(w+{1N%4OxI7ByFe15sGH7)1DE1j=hHs--V|iQS269Nfl|;0V}~b zbCj1#f){5o`%D%1V5W+hA42#}NsEWx8KvRlA85W0H|kb)f(@`2*xm^^IqvUH&2@6; z=>#t$7ZB2W7$!%| zVqY*8iAHLoQBMQA3k}Idbq&ex&X2{+lM{jhP7!uKd)Fb+Xi0`mW<)d`k=_mW#gvG* zWVXGcZ=vMu8=oOdYnAniB&ODFBx9+WR9IVEj$~fP+!@f*8?U&!yXTS$qSB$Gke6V3 zWvE`DK@V&-E02$keK3sP!cz*DBB>z5T95iv=Bt@QnYG8YN!{#|!girEUH!-P8YG?BCWLxR*-I=r zx%Syq^CXm4=i+@Po&bqJ@251p!JJoHF5r59k&JFCa|&t%7y~;-Dw1_D>Lc^puYlN| z*tlW+Ist8$S5g)%^@-q0BU(ni$OMYMl3*#UGPmgb;YA;GE)XWWwb^&%X2o3OY$8XE zykG9DM7BF!2^N^h^kuzaWxe>u>zPxTt(mtozmX)0GHW`BluW{rIg|ND=H6Fd6HG== z>YA;G?|y`ao_j&`mn?}^*Ub(4{5G?$rTK8&5RENb(Q{SP?X0bJ@2d8;sP5Iy=BA1b z(a5=5dc)04J?){e-y8DP6$Jv3PE>&Hrd>lr;zu86)@HW9_6B=9_&WRX)3k44Z%^lu zZQJHFvZMEAp5MG~`#{oQRWUMOL*4MwhdqJz;Y+{WK?T}i`;8Q#X4>*BoibqnVREW<+Hk0y5deRT# zCt`LpqHTqhYV@jFkV_J^95$F(oPLmUY1I{W6PPfWm^EF2#uA`~N)9pNOgY}6b)4va zAe|OBDh>$q6^~8yv1gk>IPT3l7Q-SJMBcJ>qOzjAQZRrWG@Lt1@M|PlE{mw#(+epr z4N^Z7WXVLp34)p}^q14TaQpGdy3N@te`@lX6psZ%(>!61$DHYGIe4UJvo{oK*|=fz zCcE2XuS82@#Lk#2VnqRXAQ;t~Zolo8o6o-V`%LVQ2<@rzoZ;4{8ZnmHoVn)hGc|UH zig&#+rYdM^-Mpc(X0S4z@FXef>R{444P=-geKJ`Qcdw+u;da=2^P6B9N zGrtyj0gy^?%rc|5YL=OqPoihza`ETFuf&gpk1y6+m4j>JaR`FWo0J;ORJ=iR_?qX<4)SDvc;vH}}n^6WG)#htGUOy6LXn|up zPHf)7=+ayI8|@Cg&D;Ip;`+LhX0-O8U5B^4k9S{vRqlsJyF1>B@s+&R)dHvjqIUVgGGvY2NbSf|hg5gLw?1BDmXnBVFf_-DJDe8gGL*y{8UM{p0 zK-o?!#k61^W3rjlLJ15d?Bb(baLznz)cYklo^ssa&m!}tlpPJnJpNr0G83K^m!Hj# zuwRYRD~6C5Upgf*&c$lHL~ewHBxur09oi?!>h4O-e0)%pBu zdKd4=oP6ea#-4s09qa7*n3JAaxB7i1{%+C6b!$I)=@p5sSvy4U>}&G5*$dBSMl(;G zdX%vvs0x)k6BS1=&2uJv%A>rurB0)Tizu}=SH)*$2Ww3CV;yFcA}W{FNG3^^8eht3 zRJTTF%6@jz4(%0CLo5R5PkRJn@gZiSY{N{H!xs|^ISa^r@my_TK~*I{@N884ay+Dk zNEmq06K`5;lCh+H+#sQ$s5I!ejLX1hNddeSc?=3V(fAOQBsvOVn$8=1BEI}eW+?Kl zn+FEGpV?4ovGTzuKYp6+*JLuRdtv4;N2Aa}D4O^CR;AOOgFGd3kfwhyf(ErHZ&I7e z#urXHQM3KtkB;6CJ8+2oY4IX2j}e#~*YM#c92G)$Jq{|Q$-~?#6g#xw*fge6^E$Xo zI|LR*#0f>#2&%;};l$63QOwxjQw(^0slqdCG$Bm>G<$;`OZl|wCcg$|!qJ_cWx>de z!p;QHTxUYwRDR~r4KQ#nA~@cx@dFGuQ4!t|IFi1CQ$vQ&JXVs@L}x~3a5txhH-ct^ zfSi%D$(^KOTsg(La>2SM_?uyh3dXW(ntd~Fko;oc^C^hL#_Xi{cuc=~#eJR0%0MgY zsH{Pap+g-<_CKy`Y`Q7J-1dSam)2DW+dW~}=_8rL7a`@f11xd>eQMf1JUcFGRLBXFaXW4}yP*@}+xOAPQ%jk1MXHU{IRGa{Y zS;3!c;mw&U4;9xHA3+&)=8lL1TCu1=%LN7&rND_9Lk_F$@ZqE1F7~7H!iFRR z+IQP)>%vi|OA3XIRkizCUjzIa^U@#gDhu!DXM+OW?8fH6p zX$do$BC#}6-wv7 z_8Y||;#S3gc;_VDE`SRK+?uE%aeP)qTvmj<30ny>lFG|Ys^Ed0>=>5Z{DT}M3&OHw zi+8e?MV?ThD2J3nGsY!x*RH+aSRM)peM=8#K3=sN6DTTHP~WNbYt#{& zE%Nv~nd47A%f#njqD2qgf#7-J?0#*byPK;%F$%=ce{WkmQ$G2_KX2bY*#87HmcXn=QAk=7grSlux*%;4_XM0 zFFUvd_0~gzdh4;F;3`m|fql9c_UZYH+NX&yTh>4gt9a-=$|~Pu~S}i0AF=nk6MNbZU>a$DuS2iB-DR~M!kL(b0Ey1Y8~aiX>>o0V zs72x(*?5{51eW=Ts&eo0&&a;b&&&-9gB(w>om`G5uS=tum(G7TYdhI};G;USjmvHg z`c$BMi<|%?byb8{Ib>mrFAH0uDHKwIGmtEk`J%E2#<8*p8!}&9IJ}MfOx!f`XF2Yb zWdj+X1Z4ZigL@Yv`QJ!UcHeo6`?u5Nvse9ZT312=q+e$o`!$e#e5zMj1L6=!CCo%# zUV*V20LV~x=l(sTJ@-1gN2e@bxe3cx+rY)DRDtCyRbYcJ-={6n#QKew-*~v0iOMU- z`**b50g_wQvq3~TV0fXNa4#n}Kx#@@IwvFJY4hNuAjR2{L!8y8ni{_|I=edL513V& z!sbpm>;44brhlNXuQ7@=BL;fqYaudLha!~Y$qCc)$-ABXE9b=>E|V^3vo^ENm>mTk3azL!(;S z*W4Tqhvux?IJjM{iHFVk08{Bbdj_Do0-jjRclhqC-mcb;iLE5dlZodW^yLV8*Xera;I87FwoOeiPl?rfP`A9GkQY) zy@&4F2I9nKIZf#38dqdm6gT7m$CS}*P*l0OJlZ`+zT(Uixij)27)P{7UXPT;^QkIF?9PKuHw!Tbyy ztYhM7@ec7#@v(~yqElfxxt0?DH#EmrzCePYE5J|WNA7LP?^ zd1@vm%1788T+L%H9*&(b5d}FDaUm4PAzbc&#ih5f!dF7>fG0ZUx*&H~bk|i^@c0^Y zxDltcUwQew+Dal#l)g=@cZpHmT`LJKNb`3nfspK1nmBH&@Ik#*_^_ccKMVEdq!k=! zH&Rhvb;TaVy9%%5QM6rv-#F^dnhP#;Bksa_E?8}{!~r*);IV;ed{<1yalGjQLqK`y zS1#%{1vlhKzyxIs<=CGZU1-kb?WfFf;1oow52hlSVlq6C-;>^|4+brzSwH{??68Md zU~K2e6K$D_MN8JKjX2Pn&*w>T(=VEecHs{)ZR)56ijb57J!jdqcVIIMgm&G1n45b^ zrPOM#6L8chrp2TUG(^}3Qs0olL(~Hn} z&S@&QDc;|>anlxz-g9|G@$A0tp1!_xBm%!zgu`Shbh&+7wrsn$BoOf13s3+jY6SW= zeYH}hG}@*G%W@V>t%+4`-qd{VUQ9IsM7KFx&;CBOF%}713pgy4gQ}v4xm*^z&9N@U zetGVP=S~QRo3?JPM0gaoOsSnw05 zK=5XpeUY6AjEBiekS@wiz2$BX52xX~A&{jw^GfEK%rme3P85H0hE~%0SI#IhpI9B0 z>oR}Jyt{P^V*^{Mj%qh=6xa~0e)=g(nNso7r!pTu z_mU*N^i%u+945zXc7jW5FctMtZt3S%lmmH&O8G3V4z&mm68%0r5+FLJl}IjC&iTKU z4YR=s?-t#;zuHmPx1Pbc(t%i+$kKqsKy_6S*GS_ zXJO4!d6%^D43M0dF5p_9PaYmY%iZ|=F1al6^8+#yf&ZNOww^b(OTGYyVDWN3wri(& z)BcfLZ##7NMFKK>T33;eyAPA&x*m|;DK>e$5q~TiL=&qz4-0}VZy4kB93iwMNSP;Pu0Hp!QU$JVlc%wvexuIFGrMi& z1QvriuDVREyrNj6ZsGXMPM>GWlbM&!y^DTQ>D1V&v0Y>B$F&nx!f5Qi>JlFHaa>jk zRyV`rZ$lX>ZA0V5r`i5)$pv%KG1Xj*N8Y9;Pc`8B5sTRg1CdfAc{dlN>y#ydkGN29 z{o{uw8o}TJZay?<+e@Rt?-Dr{rGai$HlWfX;47-=r{al|qIl-j%+E5u32Xi_7ey23EbsRYzsd6`Zt$A-!!%-ZYh;;vB43R#U=v7s=( z0CD|DTrcbr4+uvtDy|a%EejPG7fe1g`r*Zkt`=+{wVUse%XKaTFPvDpVtKzj11Ad- z%z3l{QMXSagTE3v$Qdb^CT@*r?r02?MX}g{wyy4; zd%pv;jd+2@g9QLmm;$!5K>~-LppsWefi=l0uH zuMt(kYYV%A4!hRHSgqRvkB;?TeKXL6JRca+-blW~;{$b-acF6e(+DayRwoPXI?SYj z89Ei)*9FHH3mx+T$*}M=BuFCVmK^^|!4wx+F zQ%3;5kK(7+bh>+D^6w89SqpT!u-aO-@4@@GUMJ7~Mfu+N?BAjB*}sq7dYgi7`HZQ* z;Zk&G@VUQB`iAaZxG;&azrjGV9Akf*g=_fO-}DYX_7|(|M}|8Nt2m1s<5Su_g$}Iq zEOcK0wmEnOg&je@Ja{$oh&07)MVG>wDjBcwo`uX0G_c>SQET`NT6>X(In;c>II1E5 z(bVFvaCL^Nh!>^g{Nhf(rT|qDcL;=)2@cjgzW&p5$Zb6E&3nwW8q_w+Iuy;T!+hmW zVESD|?o7eN4u7%V8^GjAUgl<#6QVibjMiih)N*({jygE3yCSYj_x|qJnM~$vb5lf> zh~F}RSqZ4O2_3%gz6T$;JroiIOy;tC>OHqNG^#}ht;bBe%o7KaJh7lkoJ}8!#(<$2 zQrofU?ZW+b8=nfpVu?GjhQYDd6&b8yn%vJhHXWNe9S9g+iDRw}3pi_rf{MyQw6Iyj z*%k@Zn^a>V1F2$kL3)(Z031W3MWo#A?>U<3L|vt-rX)t>?=L zIOdpP0&5peEG93YE%v${Si@R1mJnT%sLVTq3aalbcPoCSd{R;mYhFcyEX7t1IY-&x zuxqli8BRymuhSQpxnkhCvEc+~bJ_MP@#}8edaM?-TKLE%*BFpo97_uk5$z{FQ37xE+Y@}SveT=J%bPWMm%!KqUMIWY=~rm2Z4`e zi<|0Y?2{e&?axM}0z4vB7mv-H2As5PQMyR4$c_)Hd(L5zK zH-wjO*ldoN^aiANeGcnwx9`8H!{d%&+SmP+6^W$-U);GPRO!;2S$$>j(5lt0YPZp- zH@YhWz(co+sOnF!o+JNG%vploZ|NXx%mSx?qmStI%Wm!=aMV4jRmM`)(j^j9v za2&@m#tBIXBmqJQ!DP~GnoZLTrIcGK3_~eHS(;^-U^^iRSxQSOr3}NcEXyz~)1|a! zI&GOw+v&C;R`$H#FUfWYCA748iX~gNmD{p6^$c%#5vieFm=fN~+!e!%=3YOU=(6{rC z7h!MT&wj$3n8gd_9qomi%8gMsM;KCZpN|HFxs%}Fjk(RC4Un5!GV6DKNGSJ;{G|eR{R=vKd!so)^MKBN? z9ii%#Ov@f}hS;tf`g()m@ao*{l30;SZ}x>p#;$&+N9a#n84ZU@iHlv{GteJJW3irP zJ-x)no~u^HP<%0Y4-*&rEFM-xhAO>QEoGH11Kc;p)=;}bq*=r(61{TL#m3?UoIO~Xd1Y_uK(2p?d+w4atg_>hugF^Sz zqq+N?ZWtta1fp!79WDtuc)x+(9ggmaHbMuUBpzP z1e37%(5(F+`?sU2qrV@<_l)4Z>iK)U4DVIR->ZoBloRBWr?a2W9;NpRl%#SS-fMr_ ztkX*Pkxs;0ZUJR3D<)ior-iIA$@IdZoC_`V^uV)6+y_1z(`WneW?##0Q3u+7Ki);F z)X07#zJS}MRwQW-A3>`_#P8?DW4TP9A1C5|(xtx24W6_<5(q@2WXjJB$g7XBS(Omc-KuZrd-ps-YF z)~<*X)8}QKRmD^nbhUPH+yi~U)cC{amSY-sy1)1bK#>2PsAB6xFPkGPmqVJIYnTQZ zAQC2noG=0Jfns?tAA5t&(iA5@@sX=u1cb9J+=1MQMiB!+%7%FJ9RX*sT3t;|4YXFd zy^t##a)<+wW4OCbHRjnWp8X0sL^_KGV4QSgNO{#92(+w(ySljw=6nrSn2hp*t ztZ#|NjCbe%-##QN}%r;f-v2yNt=0Y`2=AFlV;kz|B zLqZ3h3rOcZI_)A8GGT^qrJNUemjO3OYq%KQ{C@-aStrQP#uqvQo;&cnkS+l|Ybgi; zf#vg)FJH{hCCEL~R)UVfVk7!6=sEd39~mpmy<;kX3kbXxC*=qvm7u~%42$K%VwO8_L+fKkR8iwuu6HTrydt?=CU z4jyDTvh5JYVHR^=*Rl^@xw+HlV_!J@qT#;1`z5+7c* z2t6`!FQ$qXDGt$0(IPu?NYPb+mR$|ig~&J=L;Q|}t8WF|_*e0)_2fxub1C{N{RlKi6ZK_h&Y*N5c7 zL2Xjp8@}pmkGHll*6wd?$fV$L3|3pE&tjG~h9eRG+h4eyv3--@dF#$Y!2?X%zxTc` zA7~5s^`>~4%Z&_c7~#0Yj@RXS>vqjGbRXUwAl%))iY(1UbOX(Z@C@2rS@{jrVS zvYVcyxj43O&-ZuqE$`6!j@*`gT%&bWG^IMe-rADei&b4At4(84f&dSk=;hwPKwOGr z5JU3&C$fKiKss{d#qaI^9LDQ2Ljxh7urblQyf#_pmG)2G!}lnH>YKM^qz~0+enMw( zLOqy?Jx&usl^&cs6cHljTD2AZn-CvTBx(zk5{wvKfd~ak+^mOfWZ`LyuHtn3_5lDdCe%nhg@7>Feh1&x`Ea3x)_nrMd zNy8eVQGYksgf`GkhuWGr1Yg^#_y#dpxSck1b{5r?keh36rNWlzs-tBowS$Y@!#Eq@ zAc#a%Txq8ruujNW5raWEs7G6fx$0U&rG(41>0n@OI{s8vVe^5==kJNg=e4{g$S>ji zj!q>lTLddMgArWB*)!TABUyt)!5ZYNhY` zq44X=?v);W6eV8E^#>2!etTsAU1JASJ5Z$+6z3HhgciYIR|12}B}To!3+>-fsS6P^ z(`2`Aub-X9Y`r7Qd%jdC=HRd`O~U`Ge+)?PaJbBcP4U>>tOuvHZT6c|6ti~MC=Mz9 zjn;WzF?G-mZ5x}=C{&dC?;H_XdzgxXNh%0>(2X|~ChjISsB58gE26 z5;4#a$XM}v2v7c1Y-4wb zqwLXwbDP7`=DIWxO~DE*rbMTM`umyH>#+8GZsP`?{lszu`e6B4G*wB4r-5F#alF6IV%2JdYJ6A@`B(?{i`+=n z0k*?^BXc@B=_P#7C@&p zK$P^CTZYki@;F1Gc&v8o$S8OlBVo)H;!b;k+uj3@HK;gE)3Ss8OBQkS)@s5%wiRnF zYAV@%m35vH4~snoQOo(xs#>RwR}xIStE31~6LYOtfLNPf%45e*3fE1Y=2sjTEjfv%2XYR0q6k$P&Lq5)imX(OdJ6W&mbpVcDJEHQk1^@n775dGp*72pPm>N!0gzWHj?yjMsV-SN1})RNINGCcnB zjgLMCRZH||2@wL1>>1mAK_mK*<aDk{CvC@OPzjXB-y;iG{1K;?DUpIZ9nolGM;WR(MpLy5RFU3_@RCTR z?9k36G&x*&4cL>I&xa{uzRb5trjSR=7ue=_yhQ;R2k8IeU7kfm2tF)^c4no+zz91MCyrYNWe3l>VPaxIR`L~bAE|hML;d1 z_eO-RBf|mA9tI?m2$D2@3uZ^#JeiF63Ji)G2+!D_b3ZB^|Cnq|Mnc)qJcjI?a1OiT zRoqA#xn4J~8^N$%R3jH`cNPQ*&Qh%evK|ymOSNErN`$%nahI~qfzT|LooZrYlFSrS6$QF*RHbMc6Tt~GZz!Uz*RbS6VTjb!G%2l$wa!P={s|mK;?E`E-Y_IC8IHq zClnqW9Q;|~i?CEUInwPoIqMXEOMS|9YZ5UY^>kCzgOJBjh9mQwoS{RRFn?sKOxl$t zYVr+32{mhi3qcRst69e{%2Mw-epJqgpBMkH7(?l`UygHpxuY}nYCg`%ACAH#1*71Y zw+xc};(*oaDe&T2%$4+%Pt}ONxzj*rp#XM?<&MQCJqY#%8!g?QjMFyj5%6q&^I8JF zDpi_W?}R#&5j`0uxk|@rv-l2cHGyDrV@ppkXtZ!wU3$fyJ-cWlZRTJQ{`}rA_b9|%0DQh8TO!@bP)L|Fql%!pM*WE9ZSUtPv&X@l2OSelTR_{$V4nwRS&LAgN zzj}S6T$p=?G$7f5oIw4-&;C#Cvff@Wo{~U)dtZOwvVJa59}Kj$^bZiTLJ;bk=q-R7 zt6%X9@#^(JX9mOm4aud*AE|WROw*WEtXK`w+UJ-N(1{;Uo4zU+=Q1SFg4go;NGowk zMo{DM>ye*>K@9YQr-WkRiepcm6t0;*!v!~Ak>cVu{Kmucl0@0~6+kCijL=g3a}iv` z3Bvuf@B$Rnab+TJmC}S&P8ZSeWo>L3cO-P&DJP`3NFA$RaJngu%zNT_5j~|vif_&wFVllvuhZqw%WSY7e}L(O#WmnoXhV28HiOxGxuK~)S>&dWMOZV-;D+f6j> zT#Y>==v~Z(5VfW%*Je3A`>(U-W?!3uu$|Gzcg!!Br6x%Cc3DV|Dgh!T5c4_RFkm&n zTwqwAJ`g9QxJf(-y@of$&_~q_^XSV0T%V|GfzCG?YWWR7wGfPOX1W6&+Mp2KfeyY^ z9IYjHB!hC$55F{r&q|_*&9{qhRiRXvtG*O22oGm%(pIO(<0MOT+x~}NIdF)v$=%;S zwhfW(1awhv%zlfhLhvrlnRwFc$zPV?8#??NY4&BvWuig@A%Ue)>95B(vcpGS`7Vlt z>@Ty2qDwac<%unl%mW)Y_QqVL!OG?oIQ)7CR&01^vmB5EL@d<);OTJ{ZnbG`w2Lk(e)qAh-^X_uGa#*~-PGZl}XF7N_?T;wB! zT)#7aNobaiFmNzA&_E(GN|n-#cwh!(Bz!<+p6~xdu0J@J;mV>CymufbSuB>=(X$MS z&4<4fM1di1-EZDAi7Vj6mC$JX?rfljSmPcnn9QiSs5 zglKVsbYHlK8U1{b3k6x&dWXrtEk|j237uOT>VYx$+y)FqRD?evIP@@j3;>;}Uk$}fn+0gDPm5SKUe_k>0 zs3dJ?=LXu-{;l3nnb%+0+S0+w>VI)`4B_JJ{l9}9Scbngh(606aUbSlW(ZlZXmL$R z5wgpkv{!?imu>;X=FG5+wy zn2+H}e*Vv%K1pp_@mldaqEmcVjLma#3mUag;f_k2F!rgQ?yhtj0nk7hW3|xK#tC98 zO~B(F@9b#jWHy0>iq2OONfD}$`9$9HA=5bT%cL{SEhN9iXu5#TRN4~=5c^Me@93D* z5wk*o8}7{C*)x!YCa_Uev|?ar$mtl+YnVo@H+o!^J$>&S)O&9IQY;GBhta(O)=$#} zsJ2?-(dg+kxYWBs5tp44$>3`kUQ(M;h|E47NhFq3x|}AT^vz9I#=O`A#rZeHqvBpg zo#Ft^%+^(ug0~lIA21?sB2=r5@v?tEwfnrDQajeWu7T zm;6HYKTir@CxwA2Sz!P<6w*s1nR0f?o88qsEuyr&h`f)F7f@t+(!xSgFouBP0$d-3 z00M7s%WV?;H!dFS>svVh(JxduUDboZr?s$IOKUt^w_Url16D%l2zR&o%Do=5--!7! zr&sLf6aK}zn0IjHm9LEo&pYd5Wx*n>pcM6b8)w=5_hpc3#4v2((VMVF`txrn_hF5i z!19dVXp_I(V*-}~LQ>Zv3$&>TzqjHP+NXSx!UW*M5;hSA62}>f^g8?5N#T2dj|p!~ z>x=&b(^*d{S4(E)J}EArMR}F-_&qe#ao}bahogl8M==&@#$pcOmXd~~fx@c!=p&Vy zzhzeWPjuR_x)Of5h5eu>#pCuI}`}p zth%2h-WR0A3q~-S>-{FH*(5IuIbGS`z8no!^^J^-PgK&m1@>W&Wu)5UHK6l%888|D+3``>h}7}+?q{S8*%3&?!9|=?~)=~n>pkLivQo6O5H51QiU}| zAlmg>@3L=;p}kj6t4wz(|`=Pqco#Wm-f*DbJMU07*W<^;kek66B)|Z$7srbL)C+3Sl1D}q*2sn=yS2P`R1 znP7tVF1KOYG-oWd#bL0r1hTt?;ZScSs9zy2%ZWl%Zg=}^>U*{A9c3n`Bks`|!OT+D z8adpaX8VYVCIYTJx&d*3#2UptP%B+Qm47`-T1FU&BA8LkWO-P56jK#)hqX5kq05!- z5j{d|Q(+>-6PhHt^RpDg+^x-Ot`fZG92+G)#h6BV*>Q7OJQJ9yqj9*^dMq4%+{kn1weMaH=%5Pd6$AX7IS1CZ$= z!a+IgoS$80lqDh%Fk8W?Vk0?Z9N){p+AhKQ(1~UYDq%h}OX% zA6qKSGW98Ci*$O*_yLfQpHse|?8!^D=Di~95G+KxxCQ_i8aF4BM?e&T93sQP^#Nrj zRvA~3OH6rv6@Ow*V@a-_%H0;}p4Glkq&JQPA(2FpF&OrFF-4y7MnXN&M53WF*$~^_ z(;ZSi5Cu;c3jZFn&1A+*Ksb^}MIxfj>cJ;_+Aaq`R%XIfy^ac(4_Pt%bMydmD)1lqySZe)2gki*Okzzo+HVO>rgcZ zZKig86Y)3WFIkr%5@#NLjkYI5&6>6Sl@iVN;Tb(vTTcqm#)2jOKM;OBC;FyJ&I1Kt zW_yKiu-o%Gb5z`>!at!|WcMidyby74%4eDqm`YPp0B(=F0Uy!z#f4gdc|5Hl9Vxe7=hC@9+L2sXKFLLEVS5&_icIP^W>I?P^;TtTL+% z`nAh2a!$$^>*_?d-mMi^z`kFGuv&8Vbc7%Pq6c6dtWcaJbxPN*It|=spPEhSpvItl zSH+air*SIu{8WsFs*ne*Tf3~?2$>hKB(FlD!MR?mc69ZmOj1diz&~2!484yhDKLKq zl&VB~9AMq(ZjUhgRPi=6KPJQjVw?D&IGRh22!NJry3HMtxjA;uaKpKy`f*U?Gg6U1 zBV}|vXz=6&&H4`UxT;VH{1graegwfj3W>c4idOMKR^OP(B%7O)nM`9naHyaBR6zaL zA50_=82J;4pr5@&46drf{KwTNhBL{=R3h{H-JkSas17Im!0RU({eFfX2l~^T;T61| z*)GoOxmNLOn%ymTn7{@+Je1@0ToyOzS49AQ4H;A}n_0{#i?vGP_%wjya|Yz|D*dVR zx1R5vG33-!rcBHAr?VTg`?FosI=|U@O1VebNoB>=Z7OjEB9=<9L}7$(E$T5~aN{56 z&vZXIfit2!hA8@|_^;v)OrRbqWXiIwm`@A3R)uIft%Kw*A!8l(UOERuApRg*kuD*s zPyjGdK_L0)84zT^H>Hb)*HBO-%aM`6Q0C0^#pyyZ1g)%%)37%+wNR&#i(PqN$kQ9I`Rm}&<7!%d18(;;L;0b=OeRH5SxnU{|Owj3gc%sM#d7IgkG z9{C4JGNA&!D(c|j*~F%1pH5w@&?w8s+EKn7YtMg1dx>0`z}`d1QI>7?Q{uVlN&@Mo zwWOPa-{HoMP8U;|p8$@%yw^oIQ{+Y}wGaxBY zDwT?^^*x|VT|x&y_BBZ=L{LxYKW zYfFjI?CZ#c!lB@*+L%tb|4*TvQGL7IVrM}kh|ubi{a%L|k4uc07G0LTig$^$evmjZ46uRSg&Kq*(Du2+L8ZI0F)o9BpTT!UMA_ z{70x&6fr_%o@;A@Al%imhzhDtlLwJWpJyiYCMdz@$!n(d=e7E$rOU(vsLMWxxKV$G z9f1s41!TzbRa1%voJEJwc5`Ux0w5E3qk0`t!(LaYd%>%C+?9TC-S zOugs!_7*`!_dPQZ^g|%wmdghFYXX((3-SWdb#)`9-wU?)RaJf{9>JeH6d%)RSJKWR z9thIb@>Hz7ZbR6zT*v|QXHZ5QvtGi*2e zEvpjs5NR$k=s!F?&zU0UQUzX;SePj^k^R4hLcU$xHsFBFOBKTO)pdMiGOs51Fa&H-q2WC*IuQDN#C%#)>R@)GV~AX ziSU;`T=L*s4t9z_g3s^SaXQk5!Bqn*kq`7N3e^OMc@H3j`iWZQCCk8bi3UCaM?vI@ zKF$k+h=PCv`Iv%E4n_V{#lU|)jd?hBRO-OYzdrkBqu{DQ<5Wm}x&v~`R0l}^joD|P zwz{0b59&YFdAYeg*F)iNqvE@?=ff*|u;-&2GpqZ8pk>6KN6__l!cJUl&q2~X+7ZAv zY|O+<_41Y%0W7j|wSl&sK79PP%Ps*aqg+ZjZV(g>zURKj7?w5_na7?_@UtB zB}C>m)yTJf4fY+BPb9K7H|k08fl~N$?ECZCHxVp2Fh0usUMRK;qo3}+=jTza9zKtH z?($D{<58*P)2-kEQghxfe%n{|v|%GJTfd^OvjP=8?0hxp7$}5`?mTY$WvOx~v9a|l z7F*Qv*7x*jXxr(-$8S3i1PZ(Ul!gX|jeOr}&(SAMSApDakncN5Jo2|hw>?DLUdy+g zc)q&3M6TW@V!9aW5Pz2a{_*QuvcGLV`=ZePDep5ftn4HI@DJyPKh+JEa{C+Q6~#@8 z-HQJtPQI%r)*;&8v3v8T%bS*{F9;GvR~llg6hNp^OO(E+j7l44bnmG0!_D~tI1r2P z-~ohMwR>|9g%IfQFxSK;3LMrn0Ghp~0Z){e1M=xUAN%oL_=!KuX?ep_772S$Vhl&hJlWG_9y~*U8IC}#edtp@KriA~@L%Wk z@?R%E_IW}dJoc#`se;W2DJsC5a--r$6q9bfVgx5@`;D8f9BYi=L{;Q-&^C}}mO%&% z8N+Uzre7&T(wU2$CYX`!LrDY7$c>x27gxw;3i^ zOEyu2Of;McghGLpP}5B6O!|PU(iaE?L&1SaSohwidx(@ikE4u*%_TaPXjonW#yXwN zs57zFRM!WCpYAD=_$2Nxlt*Ei)+n|p_6Sz$b!=PRhjVn@o~zajggk1!ddo1%+*&Zv zMSTYSC}6%D`FJiM{Q6VU7Rf(j$Qh<7lLM*E=aom5TQH=n&kgCqMs3_O+?W6v_;o!& z{Nz1X(GU-1vEzgVUcJU7qPk5V(C;XseuuCQUVM|_oi5p_`UcHFuA&*pOmP5|YA2E5 zTqy?Go_Xc%Tun27?&fBGoM=p^4HS=%bD|p8dOBa*7g{cw{y9NVv=)Bk){U$k9$a-L z&g+yIk&9sqliN$PQ}S%eNAfukxF}!yPEzT_k_(9o1P|;HUIJyZ@Ya#h2PO`uWx@wtqG4G_Fkl2&P*nt8(FbC2nqu{`_ST_^(c#|kp^jLjJiF6h zi6$0GqKSq|ziW>E!RPf4jY#ihNI5P6mC9r)mCStbm;A8VoFB~xQLNJ!e>5Y6bQ6l@ zsK4WPVeqlC;e!`KfzW)42=o&(*`1uLpil8S;ck1YB}6@a=&^!J%hd*kvSbi;OmEPO z&Sf;G&c0F_RTAg}j#%+A z^k4rAn_(*5|qKDyBjcB`ne$-X(D# zfZtOd2AQjh%j33kbCc2|7`F?!5t4SBxx{L#TELB<5%y!|J`VJ(lnH^JRHf0m!x#|r zcGh>|05M4Yd0)TnW4IHthg)x#tgc2V5y+))F+!E^vPyr?kgtr5N)J$XomeJjkf9nd z!`}kEcxc+yMiv>-{BpG{(W_2 zz$^S1Sn0y}{>ApHP{cy~A_Ekr6NVD|wX@ZC$F`d6kr zR?A#&Ijg!v5`ejV&?^>$<&W<}Y;njy`_LTGs{N3CZm`fklw%)Ybw6ewpg>Yv1eS8v z99ir!$i3;H1w|EBA2_&Lz6msc$umbn$E8b%|9MG-s4)1Yxgcl! zWZNJHKqds?_c9cG{pH98U%d2PxFFHXMn2&#PzD!(f+kmZTokC(&@LpZwdyjf$YSUX zi%tjaf^Z4DP=Q%ZwJK2^fb^;y)Q4%L_>Z^_X#<=KX{H4zsiRqenLt&T?*j%tcqUiE zw}Cuhu$luhIIcaH!+pZ_Pa-?}UE8@A&wPS)&m~^j>PuX3pfqIrBj;3YidBkp)OYP_ zYpz6WazVX)Ra#$MkDB|6YVsp7bkr}%t6o**IYuB=m**JChc6&jZdycCvE3e@34;f# z(mBuuitueqf!8P#_(!Bz#2;m4E5ryJznG;e)Z6L71xSsw0mXLky;Qal2T_tXsjan} zZ&LMw1dEFA=@Qi6`rFgAVRHHX!c6MJsnsX4Wg?QJk4l<^mp{SAeq=&4d-El3H6z|$ z%-T~ebg5!*+A4@k7enG0UJdjnP+IUYSriqc^;H&xlVO)yl$PoVJP#xdp3!6VMMvxT z*dOv?%3yvtPjcE9F)#*V893ZZ8zEBkO%-L^h>?<#2rQTb}05|aw3zav} zIcB&I{`C@8>io}feqy}3wg|HrKx{6m*5LdYL72z;tN{ELCa-BUfuk)3NcEtcw73G8 zUX~WY2=i6KGkSa}tHeq7C=!|CbctGwVNlh~!PjYlft3e?{}49=i@gD>ikesXN3BfG zgnsbO$1aITya2dSvhD0r{CDDG=t@`O^jus*FxehDfMVmr}8h zH*_Drm_pW5zNCgqLN!auJ=tG+=1M{yp+a8ZfIqyD_Cm^;vXI9&zqW(NAH+X)$$=B$ z6V6Ji*W99bo1*1gZW_+`kOjAt;oh=Bt!7Itf~~q@9LYkdW?J{0JPS&b&p8R`8k2T? zA6@usm(*0qJiv zz6nuOYs|p?)WzpYHl6g9tN53>GW*AtX=DK5pJ8ZPyeF#YYvM;cQuSnqU&7s5oMtA=M&wBEc0chU9cuf=*V#qcT31pG1Uoi4!z#M2S)* zUw6Qx3K`NArwXd&%Pxx%=bBufe7#4JB>iUxT38jIY@u^re)exZ;R;i}^e#@d?DK2E zqWkZJPrB@)_@orim2&u``Oe>~D#cLnyVE9*w&av}2iWWYP~tzspr>E}>259<5M7;% zsDI^VhNr~@#)t+nMx=KGu_BxmYME9@O_#W}1*%Mxc3t{2;*{hRSAtz)>s)C!*OIz0 zU77ekezpiqk&z^UVreTIBG_w{g&e2?Jov%R&(^^_ILynt1C6pp@v`&VKO~ znN~tav=Sp=c=dmXR^p?>i*vtz^#Bo0?0@AS4t<`ng9l#I5aC2?Fc=ON2q(~;4F-vD zqAypQ!(LOY5rYEQH)*FcwJ{%%Xt^+hxtah+?hD9mAxte5VvQM{SCuF4$Tt}sP@4%E zaI@%#L5;#n>tR!325q6BTgv!?%eKO0x8HJ=-Hh6>rZx7!52ca)ZE_>DITYMcXdCU2(&`f zOv&?I888|$X$PuYAXrkhHzWw?grTRVApm^>U);QJ86m<$Pif|XhDJuU?_+8{E0KwfGD@;tEzH1 zF!sj|SuczX&i?jKp1GdeD?R#W-=Mw9ti)ceSycuS)p>gb?Z=KrlHgkv;A7Wi{vygf zp_^+ca&yMdHNfV4@|{X+X{H?z9U3ow3T>`c0|f8pk-`b8CQ-HM1i%|@U9?e<^5j^o z3*&`PX{UnOw{#Y&yjrR7>JkqBu^W|-C-Q(B&!@Ii6k!a&BBBZ~&}%~l0Bjeo6+INB z$yI;?K|!tx0KsEhnNp3-O4UXQVAES}F%V8ubPZ^V+;zBRbprs{T>9S8HIpk&X&p7a zd9Xn=&rhMI*Sm}cXw$_6)uv(rA*;ZJ(bzx)J;zt{EtkuEd34REv~lB9TtLYdz^Oly zzkr4lICRGTCvO!ZaM=RNvC3A(KTA+@&)yY%@fp^Scs9yk$0y9ChfwIgt<0v zB~;7+I7z}^+V5rG%5#LiDQA{d+LUocoV*}JjncUdZYLuWVK$WIlC`=7665ZQWrNVNRcnTHw zUmY`^6f94&Rj0)J#YEZ9McJQ=ije; zZ4A>=CYqM|A_#HUfDm`*F?_~w3}^#0TMW=t3)2)%1dmAR4$B3s<0U$U6K7zmlE!Ps zFW-(WpP9Uw&s6~ag5M^F=_|FdI-G%-zU6BP409!&hnsfam_HA^-wT;Uie%)TBStRJ z^aY_ZeTG8@t>M zXm?y<R(AF3-_&>0;{h5Z#f?07BcGE0gfC8Xoh~ zdB|@TenTcRxjQq=*wEnQWF~`w&xXb!j7c(vLCK-U1}62~JUGDEz~Ie$1~V)(uqV^d z2o;6l1i?BI!^Cv=2r~qM{a5+#!tgb>Z!jhpHfk!1!n045|Pt;AL zrk?57jULr$={o7KG%};}Y1f!fp8qM)@8LF!BDb#3$z4GZ<;A0RgBZ8)lg-t)Xs#6hY8~RYYnoEcLlYUntFc+59TJ%1A`@L> z;mGT^-OgH4yLWYM8XA4=@UOE!P3TR?X4@b0gYiDpR2fXNSHr#l>xz5JOMd-RaHbqS z{N{me*EDC}7K(679%8T0ws&;*WO`Tjw;qvnw90x!@CxN##So^$&XK0sy1`{wVj5RWby6_SylL=i*Pc@D zRf62iqH1!Hn7H4h#SdtT5#g2V@=hGkIy9CChk|?_lz+q?7}7;d-LCJ_>q7v1b_(|# z`_)O|;i?(#+=T@hbZbs*Xh z3Pc6}0Qg#(4&AeDOV{uwFlRcW!Od-H#(e%5-l{q1w)>NzpexEYY@E6EP}k7#@K~xj z&O)J;9r(sjur(T9%A^hBd%u|URawn-2?!cFTy#c`Wc#6{xLif8#l4Tr&tUMwV6z32)wDCK-rC4 zUppQtgCY<7PqEJnmP21CnA-ojukYF=1p=Kb!l6M{>5rw`f0StS7;PZ&s&DC-Y3V9= zn1z@7TT+qQ>VU6n85$Dtx+);&OEh}D!|u^rtX@bmRrzBbk*GV-KXBjU*Y!O+-qV{* zgu?-|%~jgC;iiV9y~J)Qx9H*gY*sIrctgQtU%VmEJv#c>NKa>?p{02|oeGD2k-$N3 z)amy4+JZr6xO%fU=EVC{fV<=l;ePRX@eTOD4QZVq<_XtbaAD+edZ8?nsbp2^AHN@C(hIq<*vl}HX)XW;d4UbsAti03-$J~&Jk>oXV)x)&aDbUlh;W8Y^ zemT1hL-Bd-M^t|k@oHFCSCYE5F0jK_BEqk9aj2h{vuD(>(_%Y&^;ikK*)dqc`&jDO z?@qA+K~cB_Ia3JlEr)eeYCu7!L=xoXN1e|+iaI*m&@e9??E+OZ=Guu~O0IyIm9@#d z&MXhfYynf;Bx&ssDe>5CkgQWP1|bCYEsEpJRSQEy)`hb?PJyrJv~s8Nh;lStq0Pj zy;>#@B!&nq;6f#IA3@N3MEp0g2KeCixy8)I$n#pfDul>9 zUkZ~!Sp{=(VjOb>Tx;4u<|R&e%1-*v8t!Lkcu2m^JOrW@=K(H=Q$9>J3nm=y=<`O# zPTCSOGY;7RuFj>(DJOBBejZ~9Awgt?RU@YO&Co?Kx_4QOSkXXxUmIK zHEI-8LT!)*u~;E?=no!o5A>x#=ZDzGp?7;?Nl7voBORmwezoldD_8V5MNOFcr3e0F{bz>VV*`3OAuA8>}YF+v}Un( zYdOG^UL8r&K=WPmdYk6pm?6i+>}Y5brpq!?P##)u)uh z$`}D?*9@*|ZL9-^O=LU}CPoq$F_OSO_%O5lw5SzoQHMySi}g>c{_9t-eq=}SlVBhD zqWBG{j=vz@UN{YM34g8-T(BNIBCdkdnCa=Jd`S+B4OH&P2gl2C7M{Yq018)})Rv9` z{6e9dNMW*?KA8`b)rra|QHD{AIm}1VL52i-OB(V)FeOo9olM9>0|*Q8?Lj}msK`;g z!1hj_IDYefNMYUl)XB+7*1)!2{j~?TZD(xzwg}-rma9E%-sITnfZo%Q1~ac@R&80w>rP{_g6T9Y_uW$bgj7%Kxpr18?Y=sp9*z zXCSz{SUAX9gu)5P%^ZK!35ZhYShQ-OqaB)2W%*-J$d9UFInqVxHk^uN4_-QhvrtXO zfn6|A?uSWLRt2j?bFw}F0$ht=@~bF7rhjCzxeyu!1=gHoJ;Dk4B0d$jV^|Gb#4o>? zeL4H;_gaJ_QeDCBQi9O`4WZ>#<2wIG6&z|qUu;W^ABO`)zvp#hO zUUN|K7lNM7z+YUxy1TW?rPrv$9apV@X2uOUpsoGsT9A+d>UB~Gk?X&L z?PLSfI*-gn5lAjq9m>D+EmIR?!N3~OAq*60?l zT8k%2>t7Q;)xU_3i&^m{@~}ZlihqwGjUQo1^5eUhyk$O?$Snb2<`Y!x@70|*Ii5FLwK7&ARGrmF97F} zF8PbSw@lJ#8kk-=27!ZsOyK0ty9Js1k#w;scK|<{YyzMMKVP5$Sp~vPa9D8v5R>WZ z$f;oB!|%iQ(dSb_ZJY?#aHt9_k#ZaWK0BN)b*9&j0)$3YQtB}p(rwMDeTTBYZA!Iw z89_#<2azL#qGNwgcW+N9;FBc5Zyn6Ew7N=rH%?qW_QC6#aAfxJa3my^dxm;YO+l&} z+p_tZt1}*W164^Vs6&}nVtqlT*Y^vLfmsJZgiWOd`@WQYEBhAflcW&S;_q@LeA#3E z%07ov3QAJY=t?yPgxhC7f9%+8w`N`adOgFZ*^1{R>A7K#o4IGd*`PDhD^+&e2-AV; z8gJEIww~h1Ny#dPc~{Ckr;p14lN1C33nFvp$zD1)<&DbM!insK9T=S9-%1-rZLTYQ zkk|_sRCp;Co$EiR?Ya+@bkT;yT;s3UBG6i-2!t1;h$Mf$|;k zjI>>0QLLdTx41|t;)GiaC73Lsi)vy}r7RUTF!d?cC%iIk+@M-~N<1WL^CXhF$dq(l zKp@LGB#TVO5*^gaKrMm56!p8H57iLp2J`>Nlj51|;FvJPvOl@@+Uv3w;lz0Ms8D|W zwY!8@_CCA!z4!2+_up5r^KU@8<#(_pS1Wc1QhKo<_Al>&A=tJ?hnR7LRhAOm5kl3J zYD1g0tXL+g%EHB^P>ep!o?@@D2hv)U`$$XBqUAw^m(tWym(7a5amTh{Pq7kJLf7^y z^~Ec|hy$%q@K;?;QcfUI;xFt$)Eb@^?l}KX z!h`4En8GyB8SyspH)1u8WR4vc;X7ff^W~*{6rV04G>7798(EN5uqG#VY`3(tYlf=gIliLh|!&arp9pC?bJk6 zs)#E4%jOcD_3@!}OJuz?Pu~u{R3CwZ@E5l%a?cI6p?p^hXB-3k) z-$va|VmiIs>~?|8YxfQ8fxS1K%VhrnsWMR%vjRyF7w!gquE!RHbny<)4_MJ zm?SCfv)^KE6r)U>A5rxvf2=5j_G&$}?7$VgG*%Pzl-Y_@ASG}uhLlABJo1otkya zL^u;O1s!tMI;EgMqL_*oHVh_tX{#f2E-3WGND$3H0O01ZSJPK&`B(B%YS=$qD`+U- zFpFl?u%WUVuS(Wiicn^xup$6zW<;2r1C5s^ZK|H0NTOl%@$G;4^>1aLf9r=56N1lP z`{2w=Lh6mTl-ah~;e8UM6a@X_`_8aycV>USvA3_6J<;cJvd15~V`Ece>wkW4RC@8H z>^HOby^{UqyW`S}&kHTgbI$qt*|RTvU&U^kee>+|-&6a&9pX>7?AyPO`ewobWmNp7 zq7odnJ(#G2vT9S1G?-K!(Gm$KzNaqkuXJe?8XCS7{+4M^iN6#lrwxCrDn2FrPB<`S zT!jgUlcJf8ryV+NPhA*Y6MPGGO`w}iVmvU(5tJ3L`bPB=!QyX#|N1$lO2V&|9-S(V zpkZI0d!OYoJcaQr*?OfdH0A@pZAX2VYmn4n-KSFY9})pLLFx*6JWCf>qk&C? zbV~_&2p0EFuDDaEF_7d^5JzEQfshC){kVk`?-h~)NYc~4T+J{^w^kWN4dT{anM_;b zU}o2m%*aUQ$nH!gmC6k6x)l|QBhmQKx|X&`q@`tKs4mK8zioGwdefsrv3NW-G@5P+ zvy(@Lheffa?TX9Wz|}B3eB{XR2m~r`^){F7S@=+ zbR`Dyno^{L+oiY-9^oNy#~Bn`(xuS-h0QHiD{~H^2wg4_+7=sNV`s$_dv;p4K?Th# zO}gwhomLBhNo=W0uR_t85WjkrPUe;s{)5$mHndB4MvkxY+_Gd9;Ur9cE-W86;js-4 z;`5)&eonaMbHdH%KF^-rD{RjG)!yub!p2z$(DL`V5AX2>aN+6{abl9zVcYO);j`TI z&VIKK>aj4s@+ISDRfN#|aj=YuB6+1)ut-29$0q+aHtS+PJ@IZOPAodkB)>xSl$hlK2MnnJ5prO zOD+R;q_YiLx(=o~1zg*&rVI|q62p=S?~nuJV!9rE!zty6GL)_|Ylkzj2;c*%4MUy8 ztl9f$K3HIWY{yv1ycD7CUHrp?}`k^E`@7bn|RBT-V zQ#CWPc0G4nG*ri#xA~}De%_G}8puRU%j}9^O(9g2o}i6pUlSrs6>ujIvKsHX`>s1tREN5T1^VYqXw1G46uiIPIN|mC+ms<zWulXSj34&ZQbnB7(*N{wY^gkL9x*c3AkLY5Rrul(p?jlUl;0M%tKyIwXzDRH< zGbk~raY*R`Qk=jI5``Cj6bExcNimyv&q0mOH+XNRhe`s64y`+OeOG5le0}!amSjWn zAPXl321Z%*?CZko_p^q?#uK=sQFQfY(Bt$dmMD&rstd*%08)XMtaOQN5t`7duAXkMyR*FSe=_au;!`@Z$guIq1S1DQL%Fg!9k z^rbrn2ZUbn7Hz;l)mT!Ydo9;rbR;A&JEkY;C&n?->tYS*niF)aCkk>ezhCUg~vM1Xy?1OkF(kW1($zvwFxe3m$j zGz^*a#(vegeM~cZR@`24^9PecHVa~M;l=DR@t8QCeL{HY@VR5>CXV3!_hl8zPP~5$ zrsV7fwVYj;N{Wj(?LSWMMc=i?m-n zCp{v0;N?+4uM##N`_V~Z=hV-0y+k?ohCG9iz;TB4jhkRg@EE7vrtJLcS3gic{IKxK zW9;#xS;eGUKRNlkUrpj8{!8~V0pjgp$qrArBW)^Hi`)acNJ7SmLwj0$OR|fYd_am( z9#WX#`%o08n8e96c(0&$M-m~wQ}Igi>tdz&Z81feLxjrxYGL`Y@17Kfre0q7W^q-? zDaCR9d{mzw{@@2+IV`+)SbXTFo6b#$57Gbe-d@R~Y=CuL3jHaZizVC`xRzq%!i|s* z5fR>?@;f*TN2rJzKc=EnvM0+ZfkMwNqG=Q_^7&mU4T zLyWa|Wnxj6T~)-GR^u=NUl|R16RC6yYRIS%sZ<)Rp~4>xD}U;6l|`4fwDpG1zQ1(2 z-{aN8PTOy?x$N=g%wW6pW-Jy4K*OQc+Yx^bvkCU7ax11(I)OWWg>c86?P(a$-j+Jt zrT$D;TSKWf{I(YJL|lL)b~f>3l35H6S^zOv-IbwcL+D(~?( zz-Tg0bfnTO5==IuIcO;N1cpP}+0(*^t1=MugY;~`@2_-=`^|_6S*6eQvxZ6^w67tc z;Hq|jIHt*I(5W;=TRde`X*6M1D3odRl#vJtij0};J6&Bu54zHByRRo~wHP&&y+yH; zk14mH!faJU(UtQGBFV;xENUYz7|5@=k-LRZYsPvzsA7Swn=;x|r^N2sJhMJ#CXSHv3pl@_1Wb8sb)HT^3O9vm3Tto*OpQY_jJMwj^=c2pn(;YfJ2 zztUkwOJL;{SUvE$DQ_3=0h`;1;yQ4~F9HH&+ZD}q@W^eAOR*FqD{Me0s8{uM%XqXQ zFK$CIkz||{QV2g12tTGw7KE0$Y4pOth1aaTZri#}8XUZGF>T1mioTSLM;)Z0L4qc+ zM@|ZgW6O~!JlPK$n4}uLN_nMpR0(a%sbUD^vahpqY!znJHx{l*p>~qX(@-~oPZAU^ za_L%J0yIftq#}?m0wQFvZ}|i#Ktbd`qf+Yd`4d2fR|N3Mw01>n3tg-=WURLFE#h;5 zvXHwK`7_l@7+f7Y+xDZ}hczL!sE%(kQEs4~|4@nRL{*58=rE2asY& zw$Y%@z_u;#WAVgDHV|2A*O|iM=Jp6WhR|-aSq~ytp((%-D3xk49~DHO{3)uZ)W&Oq z2yvB=#S~pj(4-B(v@xdvkpx^~LBY=>507q2<0jSyf-ZnWJO--kHPkq{tQATDA1}ws z&qtw{B9BTDmo%LbH{~KxzR^@mQA(7CJXPunTFlhF$qB3Tk*Rzkg|-Z(@`6eqFQnvm zua*~6WdfV+%_J!<7O493n{>G-^?R{HW zo3F8PZ6cNk2u}pH8sXXZ55N9Ik{vwo`p=I1{P_l`fc~Q}JbU+nJNoCm7RniGoo@eMYY;RH9@RbeJw_uinTI?g4dv?Vfn-?+e6sX zmM2x~Pbs%b`)15v*M<(9JpXDMRPLdmTD8QBbkS(Fy z6oE@ZWCj-|Qov0XlO6K;<1t@Vl|PCeXS~7}j6@@~$wU5@2O1dbJRYvAxTMh@v{BN%3d za2v@W-oH==u~3DeLsz>mfZ;FH8uVvJYe*s)urNJRD_^Vv8e+ z?7}5J!~6=Rq9d&np~vS`5~Kw&x$qO_7mlWlfCWNY*2(av%4$X8xcF7ETs$M@;OO}C zkYUpw>Ejg~@eJx4zh?f)EU=w|0{>GEs~&`f7$a>SXHEwSBuCcwBCHb3le2fL0t(^$ zZ?gSTMEN$n<&%U+jmM07g!Vms)O3JERcW!d6~};~^8o(_c%<@a<=e{prgaY0<)_4l z#qlZga_wo<#Sdru({7!1DUVYi2}MD7l@XH(RYp8fB2-KwlM#N+Rsrz4QFtU5Z{(0a zynis)C34d(3y~5j@t=xSbcD?K6p1MCUL=^LcM7ArR>@n!$Qx_W}H@+?s}lT%uuQSwjNg->%uN&3}JIrx)^NfOC5Q zKw_C*mlLwHLk}K%;&EZB>((RiSAi;*-HMh0B0)zb-BzoxTl|^$14Wf$IVN%u!z^!! z2f#sJ<>aDI%+(!+HnPQlAr;CS8?-t3C;cf*d%iqvm<7;8d`ld`Bdy^SWTa4D{y=}4 z^|RZUPL_nC^Og(rFk-HzD1w?OJ~CyCvC`>cVwvUg^Ub8#Xpf3{c0?Ml{iJc=g zDgFv*PT@>9r1&c^|G7YKN_--g3Wc3Erw47^uFkP|DiVf9pa-AnPLE}0qA9LMg^4NF z-ZhqJ;a@G|QdDEu0f0S}Zsjn%zZz<0s8^wc2tVXf3%nj$z89(RToM*iE&W@tGrUNj&j_V zSSaYMw*UY3zC1q4>fHaF_kHKh%w)1n*2zAZ3_}QENJ2J3lF7b@5Mm4%mMoJHvXVta z>$P02rIb?ZwJ4&cmQu>K)(c6*h?d&LYrWpqORcru)~em?V!bKXdM$;S-}gE1OcD@U zwC(-tmweu5-sQaKocDRo@|@>93lzYxezla4O&dn%QW|-mliAcgi$%Uu(X?|`EUY;p zz@L(7kPW73e;J)o@SrKpC-D3_Rm}Y~?Ff=+-XK6Qt%q2zD_M@5ErqJl@beuP8@RsB zXl!bTEsnQD86u>Fc!%AZq>pZQ#3O{j!}H0Et!*Y_Q{5HGEF#%lXk--Dffi#;t=>>t z72`^Xz%EgG#wz&IQ=&$)GcurodF>Rj1KH^r;lSi=z+?$9nab+f7Q$p{rZX)iHP)zC z36r(;e-4w=Orqu-M~t(Hr2YLPPmglF22&U|oHKJ_NRVY3a~32nSwlp+*a$8(X4)I?p47yqMzn=$OC= zTRg(GC%^{B5pPABI7$O5@Mrbsa7PwMt5U(lUao|_6PfX-Twe24Ua z{GfEw&vy~C>kBoi@mxfW`Is0oN!kTNAvD-D)libNQ>^NF1!Z7AXR#YD!BD*KhVHaA zWfd`9)=VrrFa6SL1q)`kSu??JTzXS5WOlo_>cSmyor0ByxPvRFZShs6Rl6b#GVev* zS!|XDgY&3iCrK7lR)kO$p=cwPsw}j_3YWtcqEl?+Lid5!GHATW-2t*LojuebH zRTU)#5pWGfs|!mF78@}is-7Lq|DcTII= z4RK{q9fX+&31ngk!DO*ds(`UT<@-!j{p}dRlYIN@+O~wYxED=bj3=7Hm!_G+DVo@8 zp5w4ejf6iyN3xx-l2Si-G_i~4D14ai95+KH2E#ylM0D_-7t%jy^f2X45iZO}8z>!ufRmp%ai`EK-u3lgIIBBEUTjW@Il)3!w+gUB)XR5{VE z?FKoXm?G>MX&bQG6inhVVbh@r%07JjKqW&22`cji3CcGY!tcMWti^#KL5-^rBq{^s9OL z&Y0dG4G7MB%II};;MERU65cr}2GEsy5QqFhfP5UTrdUU;mf&w)KCj$yAlYdrc4YEs zauL$cMO00tn-tSQn2(Dn>3@l?(iIAsI>8E)N~Tbez&1~Sa&(Q}9A+P+u>a{gT z%f2^_&+~|{hfE38Hkez2Y?&NT0vh5`xZhQlH`yT zqXZ|nxKo+*tdzhyy3{mlssB3sQq!8odW=8Na})a>KNivv2dwV~1N+1jGmT6oW=^YSEB=FN}5X*Dc| zFm6@z&q(&P2lst^@7^O$rveL5y}_W5jmyk#RnK?NJS7#rVHY#2=xv@mf{P1wbY-Mpy4RpjOvqcku{AFzDb8pz8RL?2@><(+ z@)MIxfl}3HA$k35t0Ps~v*$bC-SaW&#EBCy>xwqpl{LBjZ6U6*9K{H;47(|JxZ@x6=R(sf-p!uQ^Jr?CB#4@z^o{VW#y zo=0evkdujJOq4>#?UtoMwCTAUaT;W0hkS4fd!A=>H|zH6x<~;wC&Lkk?iOo?u8&Yj z2qOj9AMzhdbNshcK~G}4Q{s1!!QcL=eG7UCLTW^jt_3?Q)OIPV&lI(l)547`6z?I( zr*+$mHJM^HV6Vk5;7AG3HmtLcRt(>JoJOm6HN_NJPk^g~10v9>x}*;hP~CHfEef zVRI01P%~+a6#?(XVn8^K6`_!P&Xoy$BvwR+5=v@WdFTu1T$)INmI8|&k^Q6pku+zs z*FpRbwH60Vj8`~I5@1#;c^%q)oSSW_S==gI-4gv9I>@z%I7b5p@; zr)_mz^^VJLHx#VSw5@Ka9U@ubKKUTuFIwOZ(z>R$2aH(I^rElc^ny%AUz;P%%PSk1 zunv5G8#|5JCYpkm`&t$pq57H>Y`L!1r1<`8G>~gGg~ea8&1J@yh&BL$lqC{-APdx| z`fFsrX8lR9N?pX|r?Mb#pnt8W`33gN*RMf2zW=&Nw1^fm)@SFSVRwhnu#04eU2$BF zgx*mQwn|C21d6^Y{8nJ)iZBfic#9rC7yXoo=J2_O{zR&uD3sjgXQY@;VL*fR|YTgZQcOSW#SyzVOOY6#Tp#@)pfkLTl zlUg-LGu!!hxyoPV!G4K@Z%W6qc|ispL<~A#h=wmD?OzOAw6@MIfl(dV)ro)Ec5S~h{5v(Z z4GlI2%-2H0zW6C~oJnt#($kiVjt`Dh!GNAS+s#SVOh>XKA}lt^5@EK77be7WSjNO9 zMw-Jj7uirO_OlCn3eO&=0=0BwV7kNUw0p*RTUt#@LV_9Lu;FYEYJqWarI!l7omE;E z9~KjxonQ);%;E9H8GB1z((UA|ECUj7CVS6AGE(k~<~aub4%QCcTQ`9@8>_3WtXS%> zrNC<7GAWa6$%WJSuFawy%m-{m5M|BcA;IWV_{=sN``at5)Ec@(JWq^6l4W>|yu@#+ zEzY;-^l0C7Ev^g^UQFKd_tE^{k>e1w6I+0HNWa7ukVi`MH;e_NhO4!VJesKcNMI;NRdrR(0}pzBvnMG@ zB_&c-QNxn<^7Pp=yKbw4#WmxeGu~IFE?8a4Y_%&yj9CmVk6edGsluw#?>gLXuOoW$ z3~`c}0VTXalOJ4$N?mOiA8pm`ywHoWa3_02c}-_zHns}m5TtZVtx55ii&q92(Ih3y zs#M6^Y_Q*!;=}ate@YvM#r!rdO_{y|uPnDJr)-mT+9?BE~Uo%e>^|w`Y0X^b3LG5ZXDEZuu?vbusx{+x#%(UrA0ep$KJ7j*lY; z2x(#|3HhfB`p`xLvzdt%N=!&0K9V#^^a+Tws$+go@2*%e`BB2%QkuZx7P<9wL4RI~@E~4Eswk-vnWA zRP1dKmvEJB4M8?-S3|h#S=i9HLfsByq_4Zs&eG-E7&-jazkcJvx2=HsV_$*)R@A?g z>YutK9=pYVuKw6dpb;QJ>>$tvc%T>yLjC-g81`*{ZcBjw_Id^We?gqjSswK4@6qjs zPT+r#-pbM?&;W#gqMS^M0*0m<4i#&tM@TV6a5%-&rT8c0opR~4IbHL30>3wYx94!A zxH`=qh!$RzphG5-r7;Iy&sRG1Ekb8?rK1H(f#mi4lk(5y9N4@xPX)e-MNu3dKl!a$ ze#g}FejQN%8rmOpLS)eNSko)=Fdp&!g#GYg=EGp}; z+4Rs5&S_O7o2_8iW>2$n@4fi$_)R+}C&wr?-wPfsC|JTD-Q77prp!B}&yZSsdz#Cj zj**a%h7BF5wZIOS?vmu$ye;?A>rUq;pGlV*7q!Ld#MEO7wL79c{qs+#_hf^9r(yfK zjy*}*FnKvKQJ_E(tjlF-U1OSE3+4vNyl_y{K!npscp2dua?>D0$<-$-hK6zciB!AOlp2I(%B}6q8wJ2sM7%C7vo4_~S^6{^HdEae2dNyO=zNu_AxuDu~LyfC=RaP+8%;XerpfOO2`D}19 zDUW?l3U~s(M4qNaMm02=l`LheqRf~+XACyYdY>oX5!EMy&v+m3KIa{BWtxm%yk~Hr zsc~5hNigo;5mQ&O0;436~*{f_l~HcBMZ@^3&G zur~yLKNQO_m$AAE!Mft(nuy9<;5nohCobdB&p-6hJ8qslP8WtJ&pa_ZbxO{`?suw9 zAFzVnOFI47%w3;4@X1?u-7+#fGzbgv8`}^Funz2CZjNT?>EoH9dPrkpN`P=3;ge!5 z;-^7=UmJIr401cw&;?B!`Att(6vwBt|GfgqVSkh(;4KhMuB`!WJ6jt#G!3MqFWDE*5#wEaK zmy%|Ny9*>$$~OcVO-Yie;-y!14EOg|m?YRM1W7mk=>hn`OT`6AUW)H!Q1fV(vB}nsn5|)cu?5i zPS!zN+B8&BEy1@fmQpQ}bvU5w>K8|uDj=$YqpXaCL@72jtbR>Frmdi%ZV+SBKF>L6 zPSie!-A{Y^*OJ=#za%QmnDc)wv%Bn*F&$hfv%5Mrq&cg-0Wv#VLWUjl>s4fS*FusM z6B@R5b%E1XP**d0E#xtkwR`s)w&|W@X2h6lVtwqR?0&w}<>GR6Wjd{1Hzb)bsDGq8 z8V-qqKf0}Nt<4@DYGy{GtXS^f9ir|p3N#+fhU0*kdUHT@qqHO(1AVOoRr8Yo&%)oJ z8vcahQQ#w}mK3%gl6s~>!=bSCJ(%;Jo-z%Y&*;W8wD!4EBDfQU^vwC|#gNp5tKJ!!Z*AQnPFy0lhBPV22XIBTp4a8amqM>PZE&J{VV4fuz8wV z8SbBMgo}=~lt~W>SZ)V6egC2R?v-naho){pBRh2qZN=-C=PtS>i@g-zMw&QZ^a6}X zwDBC?Mkp4n_D>3xz6}&whFh=o;F@n3wpG{cJ`KCLwwAlLl)JLGNf&=wgbJY?@#)|UxriQ|u(#E#^w{2{<+asD=E7uehUi@lXz#i2QnotcneEwQT zdP`bfUR8U#=~%3OpJ<5yl|UTli|$F=xj@iO^}KU z>-Id_LQYLvB zg}K(mI0HyvDM_bgNI`PEUZ<9t89AW4s%DHUIgY${loaJ>L0GDJB`&4iyvJe8>sN)D z4$fA8=+~3crUuLnK23U`v{^(6Gtq*B{0_jWesQTBDQuc$DV(_2|L=#@m4F^hrssvJsSm9HgPEWLD~hL~ofN>fvgcfB(6C3C zmq6pzcs=%3CCi33c%!vLV>xCeIP?O><$!p6so6Q}y*LfK7|p}TlsOzy?`I(4eVA13 z>(j%@LA#}6Ykq=W2b$>O+lwInXfN{LF-C+y{@u_26MJN@aidTEjX^})O@++Ex26Dp z18>9>1%{me&1~I5zG5)#Lj;YjZYi4h%|I|wV&@^$vsdNN z!*mWgS=JRUL@<>2{v)v}gl(b!pR}38&bmDH-h`KxTzH2!W`_3n9&gSou-8aU1#2AX zF&1OCq^Q}!W#ymFfG>}bht?GrIvSGFj~??p_%Zu|7B3J8b)o_&)^TGQXZQhB^PqIdyqFLc|byY<*X*9uMfo?v&&rD^7 zEDYyq0igQh0e^VKCHa|fv(=I0IbOxH9kyhd|MA0iKJ^UgZzp)(zB4#FBK?nLA5u99 zyH3;teNymSxhni06p|;wTXR$7;D9US-{YeJ>bjB;So^IHlhoc-*lRc?#c`chRgaq+9g2`k}TFRQ1F&pTPT3)*p1jL8M~3LRLI1il4IoE z2&H;NdIn-E7=|?#tvFcLX^c6q>$K72{Mt_a7+4OEFIFRozWbOCz^+@=om|E zWYqnK?>qFqaUBVypiqb1*|S>u$Qn4=vXhf7a{H@_i8shM@g`v6UF3obLO_WXA-?M) zg1f4MFNh+Fi!FTiRFy$ImjZ5T5yn?VViGQ0f*7||Rxq+ULN_kOh5kCQO-xd#Kr~n+ zc;bV3=2rF<7p&Db zZ?J(kxoozSENie3*xHdItK@1^hTKTqroN=R=vv{|t8a2z!}QSTu-xRb$ja8j6jP|y z&~dF@{h5YN)8FECE-h|K+Leuj~o8FH9gbop_#GG@)4& z_|^|eyoISs+ts~%s`}$+{tA*Vj7=uk>+E)wz{agY#1^lwhN71PTepjPN&z-uL9(iJ zj7{}R5cWm%6*y~WC3a!`<($o`CX*N zx*;uUK9cSAD!*gZy?AzjR7b?J72yU+^POf0EtoB>2`D_Fru}$1|1VvKf_s5EJQ<|PLU^x)9J9<)RtC$QO5Nkb^nDikEi6~dG7fD z*z}M37hn6}cr?M6)=GAac01vN1#`J0dn!t$W`T&Qc&*-61AFH8q>KFLxCi6AsXJe{T&mn(?%H>L9J?@fA{>%#x= zum26{>mT$^{Cz2FLS(BaiL&nE!o2X%Afjw*Dkxi2U=D@_`ZXz=Zw?TYtzRCXb|9L% z6w~Pr0%eOp*&>{NNXimxWhVj(la|eburNknV6vjY_6!LZFf&^mq~i z;Vc*mSnt!g(iA-WI`*2f6?rOn3^Mf)B98FOGOtpVsgm1K(d$SUzQ{?x6iiA_M<2G? zGGYUX9rf!%EoeQhipLV!YK)6ds!8(vbU~GgvsaZk*#;d>@}~g*GtjDxmUWDne5<5I zd=<)@{%VQ=!{=faoDsR0^>4w*wwL=n@3}618!{&m`V@LnFT$IBhKRdeL-_Iq+qT4q zzz}6V!uI7_?Lk<$B|y|f?sDNM)D^T43tKamAeoZzvZ8672wPg;G$NEu141`m}K3WCp{A=Zi9HpGc z>bCH4zuD6)UyDVn@@?h3a^!Inyg-1$Sjje$|A#rrbMmLNa@5qX7i&5QyQrv3FDge` zTS-shZKVi)vNyu|yq>Hwf`Ma<5Ty1O1EVVF7R@R}(@>u_JfYjD%k(MC`t2{sAtsCg zgr>g>CVT-<`_~K*Y^0-XqfHXpbCu1RIggwu$TU?}+*a^V2GR8?bI?M;w{#PV_EN716Oc%O0TSXb zS88VxcPcjNwC-Wy-{1jPG{0I@O1QdFDwJNuHU(EVXLKLeJ*?{`FG0SbEc0z-=dmps8TTAXr zw>&3T@?31S#!HhYln6@!;+}I#N#GIf&J zK*$xH_xC;TCyLCO9^))l z!8&3l)*_pPB6^ruRTwas>A=krF{w9E^A-P~Dn3tcwiO^gi31jVIZfCQ(Pw9@l%(9u z@_*|3MIwT6MrV{*t!B7w4!1jsYOKkv==BSuYc6TX3wKuFMB}b8xGLljoBVe}#*5T6 zxWdW4!xo+`+c2<}z1*kU`N9jHW5_we`yWvAIN8(~TC&HQ`s>)uzPb#R~e znD?l6x91&iiMQDME&TqBCwVW>%U*@f;o0x&>?{JOE9~32nZ;uHD|q%9ycz6;b7J;$ zc90#%6EquGCud-#&#E%Ab+Iy-iLSoKeqobu}%0E$J<|f_Xk@-*8G8S=<#0h=Q(rfYldwB zb+}FPec|hkU_jlauQ6tL+H>Z@QNuR6lgzwq(*O25{u7n43S~cQ(V1C=RKYTo2G$^3 zScfjpdtQDRjrUnRKfv_r!|ZN4q-Vu%A%5w|Rv3RuVa$PJQbMNiNyVgQHYM$2JCyIR zI;Dc`QIE2ARnOY_INKqeW}9)`hWm%{P6fgR4DoX)2k+wipfc;-iD#Q}ysDJ42K=_* z$izW;ZN;$zM=Kqap5CW?{D*93LjjMlA>CQjrJYsi9%Wm_H@=57yI7%`$2#yG71FP9 zJnMN?hwr0r4@eWwlGNiU<1DLC@t$rk-T^*zt<0vP59;oLKZw^@obGuRO!!e=U^V!b z<0v~DzwP)fz(L>g65?t$kmaU)4D~<3TI6?Gi!=lLI#`MF5KEE@Sf&*0Ij3ac+`*F6 z-{Jmg9H0f#JCxh-P6b2ID%K$#LtaOigXjU<$Y3Ru1=G3QEAXGG(Ewf>+Spm~-Sq9K zzk+YZ_lj?#`cs{*aJFeC9AG)PenEN#ex+Z*{TF~A)Csh2r?yA=AuUrXyzk&Vg5HxKWkWb_QybVpdgjLy z(Hrg~x2lieyXd_x;B_agpm9hM+TqLZkib9a&J#RmkjGA`9dQ@i(U#A$Jmn40qJr(` z{oHTh~w8d-UiOlZ@?uo zz8l9`dam9EU(6ArN28zXe}d`h7W73uqj)b%y@$X-E%iPNm=FC>8>{!825j`c0N8}l z-o~1}j{?r&sRJqZA_jPh_bi|t^T1NbY>ojg_3i>p^S%VQ%=;8zy126(IWJ`yBFzeK zFV3Cbh6TI#(AaS2kqdjRd;+X0t)&jF?* z{R-sy9AKt*2JjTpIPr8JWUouTcj8NIn7#7xzZJ)7#r<}X!$y>t&u;R*4A|j)9S0#1vv=1_+Mmhb%qU^8%Az~*qi8mSzBbATurI4MMZ-UVz#eF{;Nqkzrgd=5{G zfQQ3?Hc+7m*tiEUA75Go?cOth9p00GTfOf9_JUqTtRJ;1Lfy^-o)YiQA$>94`ZZuZ zuvd(--T-VCa1Qs&fUA>$#mJ!yxHE{6R*>=FyXvwvxA;BuN+gge)u`9e^F^FZFCQC|-|NF$dU-{#B1w@gm@M zP@x|9d=qe3iSi1SmTCetGSIh5Ogx}5{Gd%pun*lu7w=mibTE$;M*r>6uYJU1eJ zGoTHnG~%rWz)bG}z%0oTtURbI5ZoN;wZmIju0=kxfP-kOYmvhq zK&odmYB&IB!&fw;hCP6pc-jm++y$7A+?r9(qkx2sX4LZ{V7qv$1O25LIOziH^-`S9 zKGeJ!rR)bhCDLf6%psq3DE9@_sT0`1jDwM?9W*@$IEwQPfG@F)Yzw|(BkKa}K$;7H zME4Fny#R}^b^$xkuQ%a88pl@n{@cX5*`0ti;%!2kd7EuUt_gr0=trAbH%i=$$bV^U z3-URKcRJCYyYSWD0i+SB3t#abU@z*~jdI@v90lyb7ZIeoxy88~=P$BeqQf{M2L$DWlj*4#_MLx&a zQM9^~fc4&1z(#KeU=wC!v_XuAM==(iWT!BD9%9o-c^Ht!)oC%VPK$AMT8yjHNPiUf zslU&m^d!K1(0)$zkvX*L6F8@Nc23N*7<(|E&WU+;4!ITLoaWg%c0v|^Xwd22$fFr>>PR=l|}O`ao05qhYEMZ0S{rFvw|_> z8pZ;@$5_xP0`-(J7Wz74=5K-hyP2`5!;Hl&#{qd#+@~2!=wU4J-xy26dr3G?!h8NB z862Ax9AZiqL{D=t3?F7J4NHhLn1>do=f{T{|1MEWDij6H;M zjxJ^F7@i-;_nz3!*uy=HJyOBgqxja7KVfWoGh>g%Fn0PO#%A%}6S)5*%608J1NXj({GUNR|Lxn1eH(cC_c6x)BayN1;QECL#?ImT#itqjKI-{{RgC?x zow5JI^^Z{IkIyjnlTR}C`ezvX>0!oxp~r!;e_4m)mtf8F8T-v6jJ?&t*zXvQK^#A3 z?7xxM+%d*}{~N~60|)1HUs3kh#?0Ksw9}oLyjC z`UsAn!`5U4*NWEJD3!Hkz(WW4;lj8`nj@jBy` zxj4=+UWNRsQGN~TRf}h}s6*X5j5pvKX!`?uimCXeo#I%&17kdsY81Mrr=bkBrVIS7 z$Dy5b>?ExBos-o_r|(>b4oB72@tv!WJ(#Ok3Mt6<% z_idX<{+Hyel`FH7+uUO#!~FxD$(4iS!|t)=$<>qY;fZbTvE-`3&H;CFbyrJaa!uz@ z*W_5=isaJ4!Q>WteLT6vJ?>cLM&ocPdfC47@pl`g9`gm0$G!`Y&LFzF5P_IO;%np=T?A ztq)RSEn0gy-qhYnzQ(sDqXfbTVO{%9x}FdiAj~8qmoYr;!5#V%`u=3psTZ&oHPccK z}tuAKtkt)TcQ-s#1YZu};Tb})u}BO*V4>J{jT7%l0~vmgB1)&BnA^?PpsAklziA{`Qm3_M!_-fkuI53>*@cNIJ^=7LYm$9jG>+Rqwri^cE+ z>q4t3LwzeiwJNl(8hk0%d{{9x0-I~Wzpn$X)&ny)fKE4p``G}#{3dYXo4`wN0T0uO zHrOq2)+^dP_*CF+5E!JkGs<=V2ZZHGw6dM-7U1euczO8I_l>;U@|R_C8)ce8(H_Xw%~z3e`Ah~3W)vj^CN?6d3$`y3?sp9d%S z1$K;m5hLH1*a`HuhuN3eBkU{eQTDHlIK(ONelzSb>{C3>X4w<$40{qI<5~7K_B3`O zzQMl9zQvxwSo|#ZBAx@*o@f8TzQexDUSR*p&av;Y7uol*@9+cmGW#L?wEq|T5&JQF zmHmXh#$IP{VE^N1*sb^l`z3pm{fhmX{f7OPy@g5hZT8>n_v}3TANCIBfp>Ad$Nq>p z@K5X_^Dr-M$ONny9+~KI_sW$M+hq5|Hnm}VuycHyI;j1u@9xB4s*Yn;;l4GVI>gIoNB&?~cjNF$_|HI31rHb&vIrj0H_>8*}>~jB8i^XMqzt zNBrl8uCb8;_i$I|m~N;aA-45HlYY|~xZ&>Xa8N^r}fO5Mr=o>nRa5mmK+!H7gkM|Gv4Z01Zon!9dL3i(jQJjg{ zL*Gf`ZU6XyGCDXpuInBd8tPQH?Hb+Y9yW~kPH1PU_?{k}K#p=NCK?%^DdQ7>2YjN^ zJ2E+@^!DHEmdE>V(T%%rb`R^^G`lFn{ljkLIyi#t+(Z51Oc`{KkLw6Ag8_YG?oLzy zALSmW;a%#S;HA8bm-7l<$*ZvCT*GS-!MC0_@J8MQUAtz!j<@jjyp`X;+xU&Vop0b9 z1G~mLy9eA8^mT?VoQkTNe0Rl{26m2j_xE@Ak9AKD87GH(fS~S?F}JR7tn+3!@8n&) zoA+=x@8x}b8#cPP^8r4{hxjlb;iG&9ALHYE0-N7A^PT(_zKh=qvVl5Oq72d*#g!<@ zC`y{>AM9}(N_+Y-osIX8>q^H!1$}w9y9cvtr&_5sswOSjT7NRb4gNE=Q%lh)Dj3+Q z)x3AmeT$)UA&q!l*D3Pu_UG-^-gIkkx);5P!nNwC{aTuSEsYN^BKQ9JG{Yiybwo=# zq9q+!l-EwLUp3c5L_n6v)>Y?dSd(~4L90Ym-#@*f23e>Ji za3B-ZV(Ifow;AyUI1aS>apTxLlVIrfGeL$4Kf9n4HPHJ@)1#k@mL`=}s%u57(Dx7b z_7C?@>@rZ37d_5EEm9;i`5L6SkaxL0{RAZvQbFinsx7RQ}i5^0A3>Y07>6z@F zkVgBF;{+jlFmPn7rx(qfTD=M9Lud(;_%OHB=~hRyHtBEaJ>aX1T9+25gCl+Y-JOG| zZvei9PSxJQ5fC=8a}-70B5I_oa1Ty&2K7x6hc+}K+I#T)mDZ!(gMq{4bNQyyuQjB_~3k@%@a^YMp6^+AC>93wzsiCG;+z+f>NNT8^ zPgAR7W*A-97{*Eil69i< z4o@i5j|2SOc%%=b?0`;8Lf}_sx%bXl)?az@qs{H76n5Z1+$kMDaA3p9f%@k5ldjm4 zSc1fy!b*#dICzR-F7g)xxB*X#Fd@&f(q&xxiJ9eYk=e@T_EKVuvPVy{%9FKGhBB?tt`AVCRTOGnRA`D;Xv#7a+BVCO*>x0plK+J=19|%6o7R?Rtq4+e z%N}1}U%P5~ys9oc6~Lj9dDDg)8!MNl#6%eIY|FYe`AZD+%*E5Et4k%Eg&UApGGEWnJamV{wDnf{f+u{ z`bK@FevLj~zf`|OpQ4Y^N9Yau5NX+C)h_q}Mbh{iLW)CHhvbH=3|SVE8j>867!n&2 z6#|b#AwiN4HPE{`wM3o0!+T09gfiUBGPPC8nC0~|hgCR`h3~7G73zA)4hOt5o7G@A zFCCwlelStDURr<8P4FURx;s;?k&^fB zMA%^con>mg6ux_i-o1U6tF8p9{mu-$MdH&Q{3;kt6Eyf%S~u1p0IE6dlYHYutwNzInl=SAsG zNGH-`3EC_=d?ftW;7bkG2r4ltMhC*-)*ardgy@CG=I9hqaeZW@Zd4i#k0W@hR9?oP z0P_+&ttecX<+U>hl~4|!XXP`{3#B_HGegQUz6`FDXKs?qxeY<&W;*12?m*z-nPNGZ zgV4^IlZugpJQ*{kaws><^7NS>D=OqT+%XfW{J}Ve@&v#`}~oE%g3pE%fw(UVM4;NvO&-yPmthRX)KZ z?y8i-x$(dTd6XyY-%5zs*GY)j^9B`u$8IX>wr3SR*Y9eS?L2tAP&RS>j*a-_t@|E@*h!`_G uGOlO-+omjTg_<=df|$bofxaQ6j~dCTPI*}jqQPTO_K)4mu0CNf_WuC8By&>$ literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testVISIO.vsd b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testVISIO.vsd new file mode 100644 index 0000000000000000000000000000000000000000..d699e11122bf0ddca65d221828df6f35923ee646 GIT binary patch literal 45568 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 H|Niq|w~)S& literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testVORBIS.ogg b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testVORBIS.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1a02d2205adc1e8f31b3267d9ab5746dda9737ef GIT binary patch literal 4241 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 V`8Vz~;_n)ofZ}+fEEMX7{tc_^4%Pqw literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWAR.war b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWAR.war new file mode 100644 index 0000000000000000000000000000000000000000..3cdcf5b6c7ba51e128f6b22646a86ff14e99dbe3 GIT binary patch literal 1003 zcmWIWW@Zs#-~hrE#jOquNPv@pg~8V~#8KDN&rSc|DFy~+h5&DN4v-2asImZ@nni#r z;F^6M{XE@VgG2Ou-9G!CIql=Et9OytTUYDcne&^246YbIcv__A<*VcAd$DvC3+IfN zl1HQ^H8NPHKhyk?rY8PWJX~!0l4oMt70*;(XMQUBSi}f+$iC=5LGD0nKp5l@F0iAP zqxk~l-f&kZuqSY<;z3fClbNKC@Yr-T^Tg3qmZTP!csT~?WhEAIe@IIcOnks_Xnt#b zuEYceb!P77_1PVZ*Daqv```Xx9-cEijQ8HiC}^s!n8Yw=mTQB=x|`Q8p1*w7)WYTb z^|zbf&%A7RZ&#Ig<=)b*=jK}Ow>tpkB*Q&UER`d3Wdxvi0;%j+?@K$ z_^f9ggF`dxbx+Bdw(yYrB5%Q4wk0(u*c+Fy`i5-L5b ztFiLRX)hgbo)2j$LWvHgMrVu_{x4z@xxYBubz2;Z>ug=V{mniPk`BD}VXCoB4Jgr}YekNAP$EMBTObpz6)DMqOyFX`ojMRE90M{DX$7|~P-;PdH$Wy#7bNW< zJPS%a$iW6mJqREM3`k_1NNEY#(bz&5VTd^}AYq0e!kd*1q=F3y3xJlSf&&`>rOETw literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWAV.wav b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWAV.wav new file mode 100644 index 0000000000000000000000000000000000000000..59a063ece0114867f9447c30c3c3476a3f185a9b GIT binary patch literal 3884 zcmZ`*eQ1|e6n^eIXHzVf<-(*`ZmF#jvY;SJGq6T6_sL+R>tyZC-gki0aM3&CartbGUJ!fafd*5H{h4XvQJ@+}!dCs}_Wt;uL zj2X2ffk&r4a^F*nTB<7n1Z0^02~fEy!w^*B$>x@35ECGxMo2%(J&_DWny(FsesshJ zVvNCJ`QMZyUq{)LU9+9pR9M`rsbz3q$WO+5S4PXX*`#ywYR+4V^|Mf}sKG0n9>u6C zJ0Y#*YDMDlUc#L?JcoVGq$d%8GxWT$`Ri!zD>+)W_ z3saRwUb8GS z?b%}5k?s4pVLH>>ns(?~J?4tEVr0~n@}%de88$UVD#E9lpJkkrVbTg7ajmv4t?W^I zm(D7`>nlT9cdFW-(tbT2-*Kk-O0GMN#wtF6e7CxVnAWV!%A&&T#J)S_A$2S@Ub+s_3gV(tn&aoB6)F zSd_&@ph!%CR>S=Eg2>zCtK>bZBKHN_23jYzEa1DE9LqF^xlNo*8~us`(8b)J+1p0) zH1NHZ{9~!%558A1?^kk8VeUgA;4WgmEoL}e$nfHYfXRIUWm$&GETHi`=XWmPt)j>* zazEP#Ol96)a`dv!Y~~LqZu{XWPxS)Rhj13OZgSko zy!Et(e}Hkl0hO#V>1e>Azkvri;O5~XchH}EL}W*=$U@dy$irL8z1zw&tf1b}<-q6E zaqCHu4)Xj^7VsMNe{>uee~f3=Bl00@%^|+xEYRL9@;dP~!&sm5xuqhY^-5qR^SVz5 zEIk5zyjx`bK9Ln;fVEfg{_G5B*%mPUB+yCDm0iFT*4@Vo&~-e+hRZUXxjbP1A#i>o zP1iAhH4mp1*!3Q;u12K2Po(^yNO82tnvnsovd?YouZpv&-OpOb_#K=Ud0{oMb4|c+ z*9P1>9@w)L`1AvyV~a@RPr%J1fCZC9num!zrhSYPSBCwppuFB{>%QsD*H%5!T84_R4EGMtQE^M^GQ9k~VJ*+JsGc{+@~-hb z)pt{jay9UK5Z=`^=TL|3b@C1w-n4AmU^v6NpW(ol?EQArG39r!;kg#~IV#_rdXG7W z)wA9*?C3HMty4EsXQgYy_}j3auQPGq-hYm<8UJ-K#;IICm5rq?KC*0^HzSN}ipT4`->%#;d;`i40!DchX+H$G8{sJobN_HkXJ`&)aH52E)2auWA{3i+o@6 myo;igUEI+so*gHgk3=O}H?0x<6r+{AuEjNCkM|Z=rt)8!%e+Sb literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWINMAIL.dat b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWINMAIL.dat new file mode 100644 index 0000000000000000000000000000000000000000..4cdaa368b973b432d27a2bfd284cce98d02bff19 GIT binary patch literal 66276 zcmeFa2S5|c-Z#9V_kdzY6A-(QP^8#G7ZnU(#}WdB4uJ%)8;T7@5>$$c1_Trp4aJ6_ zp(t3;fS{tHp@V>gDxLji19-jX=y}e$Z+*U(VPOqUQy?uVlqe|m zLG%6 ziX9LA*9@rzL(m*(p)d~yq~k{o8HKWU_jaU_u^K=InkUwd>Pn%}k-Urkc3u&bv?4-# zG7tt0+yf^Fva+`bxMDJdl7u8sC|L&|S1r7@%QDCrqB;4>mncBm;&Kj7@@6hNTFdYz z`cMzupYA5^>*(*~hJK@`ctjdfl69jiq$$mGbVt9Jzk(`R7N$JSg`%A3??#afVk^5& zc|XMgWi;iz6CKsmC6Y8b&DmX4PXtneWOAkG6n~LYUz(qGG6XG_N${c0w86@^N6t#n z!|N!g;dND1bx&Q&FDP>4)t&WJ;DOkyI5gA;VKj zX4fey&T$c~odM61Md5iWv{@M{HmdKu+||gl>tJ;C4756R7EXmQdjq-}lLs$kEMhKZ zFX1eGjK*s4H3hv`rYd{EeH|TwE)gfd!>~4bg^dBukg%M%g0zyVoCdFAujUZAMm%G_ zlI>iE84jMup3hluf9^I@_BxC?*MfIiBve;}yMdyuW3ZvF1}o`}H8r=>)xmAN+PI3g ziMpA-k7lR4iiz3sP7m{R8*zNlej@ zg_e{-H3!L(MRvN@B*#6Q2+mU(l8UH!g*4|LR}_Vf2{m|cNp>ZOhL}hi`75N^={`1e zXY7zLQ1T==n{JU}rTY7*8A-Az&OKUovG7{CP16^cZ@#9`?#J1>n|^8o%^8kn960S=_RP>!1;^l{tNE-?TX1hM_1tqGbnl_z`eL(lXA33#-@F(~)x>^vX?@g%UjWELd;nOULSjVg9v-;6WVuU6>{8b=& zyoK4y9>B!DstuAu!|nVI!6iA-c11!D`a33J`N*1#3>ODXfor5^^{3ds8bmU zOZ4FB)ENwI?ku*t?P1Pr0sRqQ-6RB~$_;F@R?_!l&tt>;ai)p>yhZFo5vCajsLS|p z5YP0SK}85Rl(!ONTB5@5T}@Ksh3V^KImVn#jMGwI4AhzC==mI0v%x~9CG)^y&bcOo zrBn^Zaya&tfdJ3e;y9z@h7ELi>jioOz=V~f2V*&A1@1`S(O@Tt>P4mbJ9@1!*~zMM z#_x1xRr@5;ZD>^i6g(YGd2BPX%zt@+Z2&rOhQE5Ci9d(5m$7%%9&UiZpFoL>H-Hbz zFjNoo8DIU?gC-qjgb)QG^1)07H}r_%Zs=I~2`xs@#uNC%=)n6S)S$FTt;KFTohds| zzCL-8e)zXme)J3_FZ&W#6GhV!%IQp(pdh>sxhi6l&pO|T3~acbFFCx_@35Cou1!4M zrp%XaV;1l1=H&0ivY|!VT!MVV!h^{H3HY64I?HBFWSY6+nGBx*?-z+IP^kd~(UBMV*4+OC_g6Y*?pDBhnt*#FSoS2`-t%Ri8#j z%yv4W=);OHLo*#Bq?wfHDj&*T|IcyN^k_US&8^)(vBL)c-JO;e#oCwT7z3H(eOSY* z@VZ+RO%&aNlJaTo;X3?F!Ex0WjeO$s(gLH?qN_RzvEJ@(KCJK{cg5(c?f{>Z4$4Je zIzD;ErT8~y=bf=O=2-F(MV5n+8`gsA;~%c>Prbylhf>q*qaPAIbba_mEgN2QBb4kwa^mm zbHNL^SZ2hanEy)f8ZHq@Rm_aPg@@_*5@K;iDVvM4ama=9CAh_`B*${j+k46DO33t7 zY|*py=qg%}w=Z=t{vE%@+^yZ+Yh#RvlLJlXQ@BGzNg%B>I(KtPTD0QO9-rFzSG8*M z>uRr3>S|x|p0=R8ld9cp9DaZ&VcEAcdm60vQfYz%O0Dy3gj@*1${Y1Y%vhV@K#%8{I|$;NN~0iuD>tL2((8i` zw0&(#TH!i-TNGFOJi^w#5$JM_9{KwF8Z5`*GJRug+}i1yyWR#l*~eEo++t}~RpZP% z(p)C9D7ZbeH0Q@S6UB(!&a*9wG^3p?+q-vIdxBWn-x9jY+$c40Q)!Fw?f7qJTZ}n2 zJ@>u^+-)&-{1)n(6CWK>-5EsFL~jL|K8n{R$lW)Moz>sD2gc2rRB6B}CE zTfe<@JS`{{|IN0aZbK)hI7C5^j=)&dmVr_d7~f&p$D8Brp=iau8}ozOeX0BC@jH|7 zzHp2YE!Vy(S}|MeZb^2~fYEE`R6MOp;Oppo&mmfoksX{Fl$2gfPRfWe%BiAs?nEil z_7AAtcj&Q;f-XsSxJl`F<_>qb2Fg5#rGp>YL_vAgvLVJwr;eWce}=303=& zCs1I&Eq0G*hOLJYT07I%h9!td==SS%ctE4%R4GO!rS(R$l2wO;{ObVY(hmK>@T3Kg zeBIh}K!b=z2^=2z!a3En(qbDG#c8b1RRV`xV_1@wVVmze39qR7(1=!b%NU-dN-L%1 zK2Q=kH2Fy-NIUdKD>nH(O!HMflLUHuP8wYBCJM?7$u+J}>a@vZy)A7V%FSdwOz`!+ z9`w*Cn>^xfUo!1Ju7p;a+?kCxD}kdGk0{>4=bY)Z$+o#(En>^~nic~kff4Z$HX4;- z>jO8DQ`6M3nXG9EnXKCQXw;C?-t3^L_~)popbQ5|6u$zG4HoZ+R^<9R3H+4L@VUNN zdQN;4bhpY)wN|O~TYHe}L)wt76NH~!Mk^sS1*u)}shUbt?}YIFd;1*s?wnS_bTG#! zVY6*|6|wErBBfqaRDE(K(sdzHRYy{11S`oV+++`I>(b^uA6vufLt(pZ^4g<1VUW_k z4r^{B;SkMwXcH84C@RP+2@I%;*r|AdLjW9=`>FGxUt&jJddhHX1m6r+wVFn zKQcP6F$X)pJt`inS*xoRxEq4CCsm@f89Gc|wpIzbDhJCC2klFbs?RWBdbud(UEAKmEwzZTRn^nd4sFDE9xEHu@)T!fmWiGFT9FrLNcYAF|_iWg3RA&li)Q3OQO*( z*EDnfda4z}nh9&=ZNaXi+MsPQcJsRO?&9ID-29*@=u_=OS{CUcHJbtFFdtpsI*Fvk zOZiCTa&vib9zS1D05c8TOLlWfxel%HJ%`W1s(!Z=d9gHKsvqy<$R;JIT8kPKoz`iS zLSF3G;Tx|hFSB(LGoQk9`2xGbC0Ne@&%Il5+X&l<_9S=*bthvNb2ppBap019j{N&h z0_H-W-3J<>=|&!d>F~{J3fl|zL6?Zs;=2+wU>JwSV^+NJW%w~^Y&yrE3kUE5`9a*h z@P70G%t72C0(_XrAO%r_86nJ2_7ToeE_{r4oPR4|F~&x)I#1ENA2i zve7x12gDK)RYWOy{Iew@9PGlaGxD&+#GvgJid0Vz-vn&H*Xn)nma5AFHk^RIf=R?B z5t51URnj$T3gbHS2Ky!_m3xZ^-{uzxp1>LCOw1kJUBWXG{G9rN@se50e#Lps@S>lOb4!$06(UB?$xppkA&Z-RC#K(KoRtr zxpU)XuzR)jT7tWVs%B!HJQreXg6qjc)x#peZZmvmo~dCiwHYd%W%GHYgQ8qIq6UZh zN!2W^S}~%xz}H<~Nu{bL*w7Fb;D@g%;hSQ2pq|E3RF>GC;qqo| z=LXayuN9(vF@ZQNBKE~l@_>>^6`l~UC6y=xXUn1Gr)kS`6?k&RI*Pn(CB9s-?qt5Q zK(2V%R6+JMSgu$PtlQ9X#rm_+*>f;*#Rgc6Do(E0P%7~oszFD+xX#E)K59O5K`g9z zXCZq*?BpklISXQ^mM`VP3u0%~Y4R4ts&wP|3u3Wiu(n`9>|AACkT73;E<@k+;#Wt> z6sP+3VMVHs6o)U(H4vbBS|P~;o9as*`o`#GOB|6bG^;s>wP`SZ-|A4`F37c55%0f( zw~}A9O0fF7@j>u_9ac07gw4?A7z^BxZ&TWugLSzp;#a#`^49X#3D$p?^fLF(uC*Ot z(XF`~c&Myp>c!7CksTlUV%N0#*%izpDo7UEv?z)Oxlz3aiAGsfo4RvNIU9LIo)O$D z*<*>P206)-x5GQosH_1!NiVCq8cTewgS;IH13Tcz%Z(2@mOGXVLrxrLE`z+>3fyjK zbR)S_$wzg1BoA1RD7x2{IL%);&x=s-SM zrBMk6okT2ve}F+=(x-Nay``piKZya8RSbgRP>I9v5jIFrFAjMz`N;`J7*j+{e^}DX ztihou$dz}R8FAV8;CIvQHj;`iHMvf>NcI^H%p_YKJXgfxMYAI=Q?1SwVZ3k`aSpHt z>@*E)>;#Jj4H<x>&rDjN31+#=nkau{@;KR<($ z$tB$3?PczZyFav*A^FyhG7@MPzk;1b-67EXdQWBlWP-_iE}VzX$E^RZUThn1m^y@g zN-bm*G4-cPdaZ?rj9`4X5i&)4NIXP5ydAy|m*7eX!JLqsa>85UI}&`1aNOzx3F$s3 zd8aDBFkn8jip?ak+-li%oOQ_uzXpc9x^ z*l?fD2~0oxD&`ulGi#VL!i8_5Q!%|CMA)Jn4qSuFz`&ABDfV5W4EH`&jxR5G$c7cs zIXRPXlL@8VDWtN>X+(HB=^cM2qhd&fI-Btc#<1ZpDymF1b~Q$wTe}i$E^y%nLL(6c zFC}OYk=5cb8rH&S8=?XX+fkJ;o0yx~%EYbQoSf}^*j_M$x(i)axf^ys&tW>^ z;EEw<3jO>+|arg4}@eP=;A^Q*k z8FE+gR|}9Kx6zkiiZdf%b&tbg=rv5(lHK_XtW+>oRBJ}>he#Mci?${CF*h=z1u^gz z&IJs-jTc9_MBD+hsW~}96_YVZ+_K86oNHVc!gYSd5PXxD%J(GQ25L$Zq{F@p_ztFa zVbD31li)X;Kf;u>n(}} zOyR+;)LG$eBmwo7po57`?P9>)%uMum&b;D2c0cC1@E#E#gDnA3q8JIz zXBTkFF;X~bLXqGZEXRiBISSlYgx5qR!6X=FzhU;5v9Ws7NYknB1n=SHdtqUV;8pSo zVX7oGY84lT1U3Bm#08`V^dd$RZV4M+%4s2K@^-7>1zK=BLl*-(t<*#7V|v(z1h<_l za4QM$0CzRX`=Algm<01p8MHXqoNB=kgC)>d?mE~CEklH5NwauFzKsCQR^)6VZYB}7 zP?ZH!;O%UC&Ke6pm-KCE-eiBfO*5`)S?+|uAn5N!!J2n_`(DJ;lS@cw2Mih4Gvltd z-Ojbg(~igQhSTPNyh4N}mgbc0B$#%LC(y^CH0B7V1{+Q>hqVoF9Qk zT(q*ugi7UNH_d2wDhV((_10glV&d-TH6z!xn?`m|+ZSNEhwV+b+-bClXo|I@Tr^z~ zbm-85or`xmljG&xOZ>N`x%=X^@XPG+!6Dkgp}|H5!F9SK&O6ie4fLG#oKSQlZOSqo zU9Dxu3_`0ya&?`SY3tzeA_E4Rjfux45Uvp6L{btpnQ@hQjSbeJ+#5XjCO=hh3+ABH zFzL7qLM9QuL%K`7$GFdYz|P`4lO`hsnnk5S|bRpOOl#oD0n(-aaEd zC%z!TFR8_hS73(Sx9mCZAo!spi)3YWZ-T zpdM~SH(|cwnh7n$RucS;+Qtwt+u0qQPHq>kn-BL0zQcX!e#`)FkT66XCcz_Am;o_S zY!QwqSBxjlXGhc?aX41W)RGL**A2cipd0L`chXi$WGhRu`qU&?nkU1T70AH~=n&Oo zoxy&mBnU+=PL@W_h6YOU_Kr%qI!ClZ+YK2dEM>w_rUBcKvz&`O%U20-XxIp?g)_mK63mF^q|*_>{<0S4 zK}L|JFWCG4LSSz|&Hy?H(%?8j6cX7EK~sS*yFPhycljLyRco{>yxm z#`4X9ynmUl`Uf0Y$oH4|L_t2p$U=UZvhCh?<9?D=K7!dSW}wEvgs(|?p_ z{W3k|NBOKEF;x+)iJQD>dfahC?x)BTLdF4qXRagXQxAWcZgXr@my#f}mbRXu4jzJx zpzL4fwF7xa<|bFV#JxnxLKxwBmk6p4jRIvAflHWSI=$q>{`E0;#PF9@uPzcn4g5Au z6dFN`gEFF!yzVd|Swa*-3w;rkvhFzEhP9iF`?(KL&<#lcgAa0M#}L-L7AQA%9)~y9 z(lXT5(K0Z@n;GgG>zWwqo9N3b5Vt*GN&oDZYXd}%F7{vcMJRbK)Um1xQGZtfIJ^sR%19<~MI^vJ#4-?H^BEeWC1$aQpPZ@>yx9hk*#`*iVL~t`6|2u!2 zukmu@c;o(fx$*SzdsDy<^18#lG5!3}NAe+aqd(&O@gC97&t@Fw=eWNU9_MQu55Z9b z1^TZ9E@%sR!hkFcTV>(7^9C zu*r>r^$T!!^29pQsC#^{F4VnPj{t99I+hwpp<%(RTv#vi{(V?ys;m6(Q6^IU+iCzj zU6z1(9x~S(>icgi#RTJjQv(uH-2(Ij!1R8qTZCmdn4pf$^N0Ut`H5`*ztI3PJ3>v= z|Nn35^B)Q#CI%+RsHKn=%MFD|E5TvYs#d9{NlB^!HlGK7XEfngvH_{c%Ws4)UNvK_DpWCY2L{j37n5ZVAyAsXZjks&XT z4QUM1A=7o!A(ACZj0}8lOKCAWaQ?uJ;{1FygN&h0H~}()w^ z5EillVH$9*!mBUj2I4FLT_2E&7(2)v>Vh+Y|1T6dus$V2jsSrIa{oJ*D$um=KrY>P z5)ev8)N3>#4r0hiv#*=DPu2R_>&WMUwW z4uW{n=b(l7n^3uL7G%8TB_t!thmgqvY$PI-7{DM3FhUdnE-;LUDhX`{mE;K=71{%? zNGw8p+>GWzawBRV-7x++j5NMAQ&|8?L_|VVTufX1VXkS^>vGYmiEs(H;u$xGO&|Kh< zA1oo&A}ZYT|Mys7QIL9F1ZqbZ9lr;`3G=r#ASD?ueh0b(1qah~|Gm%>aErMA5rcHP zQ6t=10`)ZBGRNcp-M0iA<6wAcNA|r@gwfxqfwKX|@0_rc!IQ>7mVkEd23j{3@&jGl z9dZ(Ob4SqnMtc|*44hPGFG%+Q>E7ViYDj;eLV=(R4TSv1N_&B}x*xQ3Ecj^`6%4FP zp*6yGj|GTG8eLe<1(YI#G6BNY?E~^*!95oAjz7~wdYLmw`y(>KxSX&@1_FM4Kn`Ru z_5y!Yz};UBS7RbicoQ0!(7=QSCNwaife8&vXkbDE|Eo1H0+wT7o%AO%C=gS1l-=1+ zbW^+;DFrQAkof^w+CBgYUS#cs1wJxSM&7bQ z7ClzLM<%)3fRCJr`vYGN_(8x&4w=G%kE~T=fsd?X;|fr7u6R6<&b#55(I&GB#i7SY@pJ-$zGbyRDZ~Kyqp<@M)Aa226%Z<_KlZA@HQj(i*5|&!A?y8vz#%8vM}SiTE*v=UtwHDvZI79$EJz zYk4FcIm<`Z^T_!%@}&Y~O^>Ymrvrzi&jkJ~;8cK{4IHwL#sG%}4oM#d4mqnv!s8AE zC(Qo_4Ir=0Q^9M$SjZf_urLFgmx7V-a1S>*i)VdDkfRv+ z)D)o}{tgb3XC|PJ^dW>cV*YM9v`cLTp9_^o}{EyH_+AcEYPMH5UHGl%OFA5&;i1dFPyOHPj zAKphZqdEn6Q+)h|@9kM{MBY&YQNqCl32Tn0YZ^e^h8ceUye&_Z_}{C6jC~@CK`3E$ z3O@q^-dJ>kf<;A?f+U~^V6ulo-X;{SM5ct0s_=?DX-6OONC+hY8V-~ULdLR%&HRN{QolU7QkxN5pUE1t84(R>ry4mYzTP_8oEp+{<526heQn7B zf<(WL1n-V`_pZw>U6-7?FOmUEzr}B<9vZV%gU$TGufTp8{Q7yIsdBKfa-iYkK*NWD z`u78M?*?ki2WrattKRfi@%q2K?*CleU-_c{)3fe4r{CdcUyT`Rs~h}QH}tJ;uoc+a zp_ZCK#Qvc5d9bN+pb=2{I8avssPxyA4^)>8RF(Gg0hL#PMAs$CZ}G3i4hb589TYSS zjoNSZfEHqfw1%3ifdU7czW^$Ojh_%Ih%9drL8?m!s!9g|4egjB!#C!e@ z|Izge!(HEmwsp9(b-1f#xU*%bvw64!SU_%^5F!y!UA3@+gc<{tQultK_8kzU{ff`; z@E_l}INT!`?iSSMrPOefs~;uuvlG5#UH*JO?$g~1A2VY0Z4%6^gDd+&A5^89m7A_k)HP9QQIvT?rK9s>uep<9-=g%##(BS zN@@B$O5$5`!0+&LQ!fwqbq)7+H9WmlUvN_>#no{s*g%TPdlx?5iT#ifJtoC1p%gbx zm8F~k&HSU^H3 z#TB6xmn!dF{4`b<=iYP907VT0MSZJl;GFsy|6BU`q28W>?#_YEc3}J3+xi8qeQnKs ztzY|^n|i-C^fuK23#b76k->h%4)l!*0$Kth1=6$-DTYA@X=|uYXa2y?^RgVpAL{7_ z_Af{Pe4wbh{OdKj*G8q_KaBtUU`&dSnbAmfBfY+Z3Z%{wER=wom ztx*!-cBA3syNPFhNHK~J4-btD4UP;A{3J#9xD;)}o!>xDue%%l1HaIZh~N+O7wq5p z!QUK^XltqmDthf=2*Q9wbLBfgqPMjP)CH(+Zz> za!AJ)Rz!7H+z>v1VLw6zgLxX@lfZv>R9l(x~0FAcT&jM%( zhyYp?zz6-}2maT*MC}71{#cI?fFbb*{-+a8-Oug=mOz^a_&p8PAOMg7 zEYK1^hchYys1XqVGk$mN`__sVgFWqa`8R6wu7Sb!OZJ%M=Oq5XuL^eo_<;G*E(S<| znGf$Mg-O%^_#kprOMrQR4|?|x{)a(F9v*Ia|NL?4rEq`p3E!Q;?wj|Lt$eqeg1N_^ z@qzw<13xE{dTbEkjaGPIeH@>)A z_vCi<>uz)I~u@$l94!y@3C>^AHYZP z0SRD%qJRa}4O$dvw4i^1t^xE9Y6K`BSTNFp!F-&5M1)Zig?EwweyG>hKZE~y3RlWa zAFGSsd7ytGIuu&rSn=#`a@;Z6-vI~Y0R9hK@;Ht6h=bUi+pn^3y~<8~m6ckYb@Sze z8!zr(e{nzM`Mqn;?p=F+?|5Ia-U0AUHZXqHLJ_@dm8r_Z;g|G_v zoygWZ3J;?Gu-*el04NcCBpxwyAW>l$S>6ekgTNPs#D#HlAW5N*90~kuy@-^N62^~X zh(faZ$P#4^B>#taW#lvH0B?YS_(sqm12X!YxYayU&IlU%5f+7ph3T@;$e0iQ3x%+p zs>0I{gx~-C8}P`{#vi`{zg+vLZ>S?2j<34*{ukd+N4`S4(#_x7YqgBbN;eAGd9@4{ zi(TnW@h4;5{QZ43C_qhtt4zVa$OPLa8k_d{Qm{^=H>=eA!N2LmA%$09o!rPY@IR4P z?Q!>UrtYC@XlXCgRvX3gM_xBv{SRJPT!|Yk@-I$&$ljDyYUBWaH!4l-U-W$Y^ zA>*UjJt_P4fIS`hPX%nqKCU#f_fq6Dp-Yi(g8sRbGllL%bNBUkr~3R<@SptD5@4>x zjjB>+r6bjOANUcbkLxP)4H}y_0xkaoMSv>7Apl6-2=%;LCW`dT{jLYscfrkt3}C8Ad`vxS0l;;lCSz z-`CgoyXV;7jE{+l`5pezqeuJu`@equ+W4QEk&%)A62G~*x#>SOe~o|a*fGF=OG^t7 z;Xg9~KQ=b@cl!CCf`9(}`Tr6hsOV>N^G>C`@5@#8g-bTRu%wq$qN|yiHLu<`{+wqt z4EX;G{IIYvpr6*(R-mF$^X5(U`fU%PNteacZb__oB57SFw&kO!{Rb(hH|jg@B&U5D z&p74-{0kQ@{Eq*VCr<+WZ{NNF62RQc`ZNP`5rvMD!rxP{eudutR(@xN?5>ZpJ1b;d zs^sa_lMYld3&%2#76JGdFJAl|{;5-^0DfCr8z524tD7{7Euwf%ZdI<*<`QLx_eyRx z^3IjAfFBnZ_dERX@Nj@H5C{N?b=z`9(C6h> zag}$xnd(-l;`v5@!;y`P<}aEwd%C*W)ScI-vzp|Ne-(3iqr3acmu930FaZD3rAvQ} z-`?JyU(_I`a$6ezVDk1iN=~2UNuQOqqVaR>Nei(d^C9XS$VC~_AsT*8ZcAh5& zT5q5^>uSgJ+uvm)n)lyr23!FH@GoD!{5$?5A|e2OXJ@AwjW4tMh0>OCsa21mrMZio zx#1q`&O2%Q_yrsZ552HM)n8lMYq8j>6IT{Lg;h9ht8df;u7CmfY&Kh3T6oI-?}Hn- zV=|ee_(mZOGG?V{n{s)xTxeR-)>XC--4vb%&UzL&EuT6ie*3gwqe+Kw(6-Q!Wp824 zypC0el7HaG$H)IQepgqQRqQuui?=csB?`nhlkHy4_bv|(*~@2PzFanVazyj;4$K*w z>8A+NzG1<}`Q58a1_>e0fYiVM{u2@s{u;l#yPJBuL(1x-l<6C3)7J_cN@jZ0_*^Vc zWxCbeSkrQE1Mkd=mnSrDI?p5Wd2JPZsHh!q1q{Hya^=eJ@WHbM=%=Tr=LNr8 z*|ko>;+@QzH}b?c3U)l@%^w$2D~s;Z1}pu#-nex<-BNm5#>tksL#X=m!HF7(e8IKD*~@4 zZvQfDcHvq1H&6mG;2HE6_>qy3fdAg!UO>Y7WS7d?o7S7Dfz+@?RvD~>>u~Sw;jTvm zZ5e`3VYS&i^G>c0eps@ThKEaGxC(~(gIzh#Q@vkj#`bh~17uLGpmBo61N1*QIC$g6jo;y) zJ9iG?|Jk(GRh8vj=cPxM-#u4fa<%zmPDg9gXf~j8KA&G&T3S|CR#jC6s3avNNl77Z zXZ_iX;t%{21GEjy)vH%I98OVD5tqvaO8ztQXiQX8)IY&S@&av-&Rc*!ffRs4G#Yt* z?3X4wIvNxKI{f?Q_U+pMAAlDZ7lY!HCXIhU@mB;!@rVAl86Fysx>zyopm^sytuzhE9DfvM4G zd-(fT0Is5<^4GBcOH)U8Jd$jLJ04jL%BRd?(Mu8~wKfa?;|G!{Ibc)h_b`tEZn{P!T$-tS$L8CDP|NWsxt+< zdNo#_?oXqTz2#;0#w|OYEt7AgY&Ljw`1o~=8mkOWkks=F-T5JeD$%84WqpIY6|**~ zxESoLsr@|b&MBu>iE|}R+0_{ZEd<3+1=(5qrfuBHqPMAioHDpsv9!&=rqvLS*VfAP z)xB(x+4hpVMDyQB&*--rMD*IOJrIQxcg$+06lwSU#@qNH6Z<T8})% z$9aq^5JIFuL_mBk9RnA-huOSb3Zsg-#8iIf1YiUMRdg&YI%v zPBsDmGGzydz+;ygF2fq=YGZeS-0R()=^$DQQJtMI#*`Z1Ba`Dvrc<9h zQxjXuvb=XpZ1SXx+$swdf~5EqWk0jHNUDmfg|ReBH%K8o^ixWxPR;VylC`FnX1r=D zHg)}Sd@Xll0M!-M)1|@4;R`-kZ@zS6`Q1zO<~R_2VdP8j!Z(S=Pp(*cZl&`+26);l znsBg3UfpULe44bGuw1--`;kq2(%a03EhB248YUO?jwn+(ZIusRJg#BLC+EY>r3kd$8#Rs%Ua@b;9IZHGp12j)~e5kh65H-R1!9yDDUmIIB;ywN{^70 z-Pcw@lQ0Dda?RRyYGqb zQ#yGmvS6@Qe{D~#Q~LC-so3|=jR(r}_AEHv(tdD}xp$Lpv&o)BjLCM?h{k?pbC%Kz z;@qj0B<8wOg*&K6!O?{y3dx7N@dL_~E0fCS%vv-5j`Zo;S)~QB#&UNSTW}H=etdl{ zL$%GRYKO#YN^gxIacNVs!sp|yP0HP|N@XS^*t5^hncQ67t(|RmX~xUb!=mh}-6!wH zv#abHtlOkn6}Bo>C4Cy{x6(hSOWKMo=gp58ULHNIC1lHb+sQMH^mFATN|~iM9|WI& zrNaEIK)-R^(949F5aV~kbmwI4#HT^S)TYD!V#AXznNSna_(F@gW0D;$eRo7oUs55= zxH!!-EFjV24y0icYIE_#SwHd2xLvPTzka;zJHL=um{YQ6wmtLl@!M-Yl?2|I_UPyr zV@B@ML`rjPa%=6g(=LhiDdH(vq7B^(_e)>O^VoU9wOVQf^`$7au_FC!8qUyJTxPe$ zb%y>&dEG-|-_|TB^=#Tx(#Q|Kx-_sxareosRkJ#7^=Tf&9TpQ55UZFo#JlufX6Vy- zbPSU_qpWbwiB&SS4p=d~(3 z;?d>Ld2<{|PH=I@&iOGfUo~EMaJn);Cdna6uV)GABe!*?=Zpgmt?z3;)NZbQA3>cB zzwNtND=6|$uT4j@Ce`Pw%qsDStv#JKf{D*AF~wq-c`ERc)g~BG9*nxw!P`LWV z{dKXu2V?uSD}%P?-Ji_?|Ae*X(cbBV)5I!LbxixqzTUo7LyJPm-#@g=7ieyKks7jW zWo|3wSnQsvLBlRWg|gn+SFW-Z+V`ZlWS)N{|E|mQ`>OAv5!IB*ybhbi7C z2bHs@ESQ2@JaVHhYU|78SA1@akV)jjPovT=xuNZ!q_vXH^L3K@EE+^c49}imh$qg= zI8|Y8HE*(o+-eECFGt1R`XrOSx{5uydBGA>tU3SGuEONB{pILEd99b{F?j1H*FJau z;4C?H?^T0~Gmme7-qz4o{i1z`+vM=D>7pYdo8x76O5_}veM?k|e9w+f8WuO&8i%*s(=)|iLOr%Z8aGckVFwO9GgzBExj>Nz1KCc&|7=>bW) zVVC5>7PA%Y9Ea0IHVf!-uvnj+++g}NTs}HuU(@^?g%sP6clh2bP+5VP(dC#ca0Him zD~*nWsApm~pKy}5TC)6=F7%#M;4*&}UySzg=)D?^g_D`plbfbA_~?qR`9M1SRb{o_fy?(QY=E}CvkDa&UC@pGf|Uw3CN!Y+Gindclbq#q)YBXT~L z*CB7UpgFfUlaa^7PjOQ{nQ_QU{xNlkemg`1Iyqb1+wS^O+qve~)gqUOMKF%MFq*k_ zZjx8y>xGYr4&MX5A52wkz>uz6PG_KZNtS2H-TAboVtq`)o^*LqD5uWRN@LooT}Qub z4`%f`2BsDr?#`axn$}V9KzYGavmDK<1zSUokP;92dri9^l^r#!$_M)7kGj)R!6-EIZ`$I`QSZQRO>P53h-OnQ6XQW1jX21A!sWx-#} z1sS+BrGrzJzxw>z+ho1Xq=%DsIMkibork%TJ@@WD`(2A@_e zY7)5Odk>tWmlVBN*M4|$vsyhRbA3VPx|6O`r%bJDtZ#63r5w|KQ)ajE%-IkWx2bFX z{z}bj1wNTFQ!~T#=TGlme#_#P-C~32yoH&|x0R_YB*h3L zm6^%y2W6<&(ohau%*+#SBfc;8lhO}+Yr3rE)BR2Qn~nEK`hR@kK-qLLDonvG0BVM2 zW=I}Ta5ymID&)ku91vveA!_CEY)a~lIW&oz&*Y9()HOHUOEBO1ZtK>p;gMsh#i~0$ z%=DUJl4odIsAz5+bA?8-J@NxOno8w&~Tj>o;2Rr+Rtrwk15#(`RW} zsZPJ|@$B$t!y@OY%k{Uuqh7Xeak;-~#d5PVpED?#26q}?3|zl^c#^)Z5vC-1?QQpu zcA}Be zCQM+K+8RgK$eZ?+c3Uys=&0;a`B$4Si;8^A*jsDtYUaOz^Zdoi+>7e@b1d;Mg1+FV zoY+uqd*aIEl)w%#iq?5s-#JoGSQU%&t(rsAt~yRKKUEt2&e158D0*y*sdsKF)@F7xf@Th_!zIG}MRB6X&xg6_SN&!hzn9VU?5-$hD!1Q(Z7MfKS2Hq&S$D?gWB zCZ}bc)L@oV`0!l0T%qUu3;N>5XV9ghM*}P`X?O6ReOmhVTjsH}Z?kSB+8z3K#^GDk z%a*6j8rIt0o-J4FlLl(Smd}`(vFTl=kHxX+`s+Q77jCt}p0#>(_{92SjCG64z2`1o zW;stI&+(Na-~YU_zT5B!^@E%G_ZjZyXP>)t>K=DFdbP2jth4OuHGY2nku2q__k8-J zH9oorEQ=4m=XG8Bp<;S+#Z`7>Ssx8SWbjg4I)Q64XLoCnp!1EqWfNe%wRL zasaB-5w<)Gg0J|mCTuzRVtvuNwa;Gm zTpYUUd;)JULOR(RhMOznj|!`lrak;Dae3XMxW{6LB^DX4bj27nS7Z@1K76 zid3!H-KXvs$$ATxhq`b+J#{PhXq0L@e5TRbcc1{WF#B@0*1a>X)7OHS<(lA{e61++ zRVJTanD~8YUjGN5H7DRJexLj8Vy80{u3F4L)^GcSarogm%u_qcvx+(geh zxVND1o34ER!gCi*oex^6NHHEWBT zoW!m9x!1%OuIrRx&}g|B%O$TD^gGyY*llZjcz68tQ(xy0VlGF!Xm>n4v9ZJcu7&?) zKZhczE?+Z!+5V?FwOQ9_=PQ+lI`YnBy^2tZ+qXn@3F{1j=(uV3?$Ectou(Y@+{ffaR&%@S-(cl*>AN(pF7Hob7Z zpZ~Q$Gpgvgt<-T7eSWyd@#6I!$Im#JVvJu@^cP(DvS6?G({}gV({8)w>b;6ZRo>l> ztM((W!^hj*&|HLG2kp*rD|)MOpYx!w(SM+jFt0MFAv$=<6vInP!lc6C(@&PXkBl93 zYt7Hddi!Z=#ITO0l-z-yfbBKM(upQumcTs&J~V#ym--L& zht`o*(q{L>ITJ6CI&!FE}7p zsi87$gS4yI2Hydl?`wyS?)v<|XQXN2ht-K`bc>g3f(b|J6Zd5qxjwRLBwvgdn{wcp zMqf^`W$RhTbzbEU6bcC3S6f&Frv|xoo1!LtS6IB*OuXMRN~CVfjR&bX26?cm)bsET z^4hA|2iqF;xvLIK%pwhGywjvVPIoGDpEgojfIBy3`Xy{!|I4(&be!7L!ZQm>c%O;tnWswEZJlM`Vqbe)=Yi*; z?;1@T-lH@2B(IF^FKAt}@jGQ?>8I{8?3YWAw^m+!t?l6sFHBQglW3E&3{}_~KUg$y zrOYG1K-A@IMBTJRu{c(uwPlIB=={2MuV_bJJxu#>j#b|qlsU`g-1WnE=Ekqf-*9@P zO1Wd=_tft?8aD&#DSeWMJ{>x6&~$a%IYFvG2h&1taFN?EcTmLSdw*hDq67WXEDg!i z%k6hBm-+N^WdP$)m*$1n3u1yI3RfE&rW22yJ!(}|?t4LTX4r6t(f+h;Bf3=q{%4Pv zJh1#CnYUi=$de~YAqQnYXs^3zw5_=9K!jJ=y)5tc&Ud}+IhcZ09M5OfA$a)O zT8G^q&7X|q)17B2Qo`V_Md4_|j9HvVgXPz=1&6;aV-?>duhC7@SU6?J-2EDRDhiW6 zq^s-n|FYDn9!hUsYw@bN1lWb@^+TIoh2e$t5{nv{f7?pSy8) zMgD5e`;>P__9fc2XD+Xp_RMFl%!aeCFPil%nzBWyCps{F|B`tP!6k>ooAsY(9P*t1 zWZ8DJQ*+IjVP)rHKjbf(@_g#+I#ZYAD$}#;iq&+!&2Scv{@^H>OK&~2kJNuENc6fx zXoz2gqC#<8@e4U8Mw;Mh%iQ%T>-OJ1ly~#Mp2PYQog zIBnOt5G|i4?;IkZ*0JXw9qIEp|4rX3KW1{mEIR9G^-F@}n!IcHM_sS`qTcLJ8CfNg z9=dn-0po`r#!k-hJcYr#%bl{K+)i0RyVD-W3~gxM&fg9fJ!e>Np0|CY_vV_Ry8i3y zpBC2DU-u06jGO)Z{)(P^krf2BLsJv-Xi+^M>o#8}Jy2d3bN2qjH~s$f3{P3^MJ_MB ztmj0JQm*{fSZj-GRfQ)uFECgYn21WBKl|aUI^x!^3bb`RV(Un}rfRBBMQy>SLkkXu z^P(2@ZB(CDe>H zn8O|Q9kSbcJ2~4zkCzO`td9A-YEL_daImkNa!M?Fk#3`X@#A*w`Am%xKUU)GsupFf zxod2ePp4l@P$};U3k|t^HS(y-u6~b~yrsp@P2yCY)m^W-Dqo!vr5?3_w*iOSIX6|h zdCPX+677QgBS(&Y6{vGJ_O0z)aCF)kobnCVdA!9t&)&J}#!1spv05x65t;NTVDgPm zraRfD&yF8jt(|fix4`{~q|e|Mu|toI@Kw@RQblfb(dnKtbh@mJ==P)LXCmHPFWh@S zs!qe=I4{pYC0p!x!D6w>ka;>s&+)8@q{z6-m(Qp?v)Zt3!@5bQWR70Bk{|D&wZlwV zS+QcldfPMcQZ+^uwduz`zc}aXVr;NviOyM73(@NZv86I|)3)kqmCsxb-1b-CUd zX{<{Y{?mdI8`r3!A{QkW9vSdl`AnhXP*{amLx!nu%JPt<>1C3SlIx?DELZ6ym!HQa ze_wh*LDs!K{zX+;kp2>%m05pRxV1Jx4@_4k)A)T>r4%zy5t~$dlb6x7R_T z)AuN7q-RR*T6v= z+bQQ%#%!y=sVC3ef1nU)JvsmE$pDdDZS^I|*urTu)`qhWN2DYMocaE=RB`hLi45|E zqBZTNugW(ZwpdqCOL)>!bl+Yn~aJ6Yxz}yEtz9;{`_TB=Z%4KaEUIL=D zsDP9#I;6WnI;BID?ru>!rKGz-O6d|rNbu^x+dB z4o;tf8JPy7ppiym63NAY_Xz@0yr+tk9z7Sf=Xe)6#c4@=i`jez??*^X;i2^mFHm&L z*3cBvt@pnsm6ZEH`YN|hE+UdS2p^ka`B4{N=6NnLKS0?Y-)AW&vWW0PKHf&5Iw$LHu z9dCe2kBp93b!iVl0ENbnGvg6(fK0h%M`tDo0&xTU1(-$xxFSA8@` zH+gLq)wR-$P26a-D?e&TsO4YCV$^nz+{#NCCt(-qJ!6*~QBhIdxM@Fyy0>3XLQUA5 zyV+7rEq(6B!W5a&y*tx2tSe=na#tOOHwYQBLbGuTMh3SJR;(FuP0e1 z%a*(wi`$fb#St$+b^6R%IJZ`HSXb|wSHsYbur=!k4FH`RfHo28wg$L9tK`5#fEP&`byx# z)%0Rg?xfc>ofoer1n}rHId?k3iI~xe&|JNJKp7!YQb}{$__0)gg?GCaMR*&@jf>v4 z%zB7|`4@$sQ(!jZxn*;bJwIrdgQuvWc8^Rd^Lsh4r7(8WqxoZ0uU_YX!20-S%B!2F z*XGi62e+<`v7U|>yB`x7yYI}5vy|Km(r5alwYf7m*40L8TB&@5G1h7kHYOfVS}FX1 zP4A&mlx31-!+KmLOQmg+GX~3>WIc7Z+)8dvf3^_G#est7yLv@q&bUqqj<{7a&#Fdv zRtHr-m{&hoH9Im}T&Y;C-nhF_HD!E;TON1h=NNXvX#WJi6n#9+jz4BMa{b~Fkwxyh zM`=pAzXN*}-5XyE;v=KQj}>l}`jv}Vy(k;wr%%o-&T#A-cNuCV2P%<{eP3Y}oGL3u zk4O0`M8;p2)Ds}>OU)XM981k=Bzr8U5&edYd|gUfN=g=Ge=uB25-+QG$YQ`^utY3G zu3Wy^J+JYIt(DDK;=+i@18P=0^8I1tI}Vr@N_u*sEKL0ir~!9c@4Pj_5!Z_o-!3G$ zg^U~uUr483D1;~Uv>D0yO}ozHmZ#0=B`LbNT|uh&I%Dy3`?MB5?tPrbUdO67^xgz{ z&GChE70-1WZqaHqAsVW0;E4L%E?#?}(^{OO!}uv6E1j@M!YYC#5}U?BEK-SBYDZ|^ z;WmQUC~hcg_J<1n{l${SwTI?!tnPJ)Y)c{IdbeKTrD#e*{@}U!Ip8)i``ywnqi|Ki zmv8CZLR-X+nAfqDB<_BkMT;t|wB(i3mzvXuD@kgUR40#FifyTAp~NUrD&I(z+PIPF zko@E%5+31Rp{LD|NPFY97cVoi zzq%VisOaMY|6Knnl$tEbnim(@t$c29?4{LIwqYFh)q8=IY>gjSUnq5N*~THrXcTL= zls&hYjBck7Xi?NDy|4WC{fN6k)=8j)-dlc>{uewLl_3`QgzrcYT~$eZjN3cL)rA*O zmgV25@`Q00>9ZiOoa_Fb64OpWAMCmAhy-h@X?YgP7|P+U<`vzAl0?m1JY}ZBJa)&V zq^Wgxk@ou=JOLO?1+7(YTcKS{Pt@q9(l^EOdpp$4=gp&ot?9|*c)afC54CAkIoP*n z8t^AnFC7lZE0bz!fAkNI*{5nNzibskj`>8-StD`WV!*88>FSefJb}$!gVJ5=)h>1k z_bICzlX<;6_Tr*f7xWh!Y21^JI?l@9NjI)5JX0~tPE>HdPEYh8|5`SF7pn8VQ>(Rw zD;(=d7`)YO=CsuSfpT;Mv9hPT)K&3~&#U66Z33$cPKzGr__e4FN_z@mVm>=?AB|ic zk*#aaa!7ulb;(RJqmuvHxq^ZG>)_#^Ms@&eHQzq z`;p5|^PzBtv2d=iM$N>t{)V>C7i4wWJDMMnqVACid0B`R-ng*Q>SrsM5{)g`9?elV7tFZFhSiRWtK_6+er+SYb4-B>tSL{Id?E(=!{zUo8E)yxa?#9 zoy3Od$ze~MYl}vQFNEfXjxOqm3yHO@w{IF8%D1J^GtGWXvL!v`Zq4#c%|tr5=zLAM zD^2CCp&jEFyw+FCSYuIS?sn6f`0P09gx(X|&ATt~H`k+IKQ65vq^>sY_F;d~ZBbdi z+p{8TJ0a#(Y5rPFm3dF(!J!O4i#|O&9Sf7y?4x}+*_WM@>l^6oDyMj7iD!ieRi|p+ z#q$F9_ARm%LI{>lA;H_F)dL1asM}u94F=k_*3+hAsP#wDWCopNZFN)jBvFrynLQk4 zT>|#U2PGp{+5Jy+nbtZ`7X71|8g1St+Zev2x_<**oaR<%aB!zj#GuAR9EZ-y?B<{cH)bWi7AA|InxLl4AGu-ZMcnA0{SBTiw}? zH=jgApO#DIJDRdY>n`|lD8yu}A2eNtdNfz& z(h?oA-9=pq@^xs6)bbl-y$x~JnUaLsnfwbQM-iPD7)>pAnWIJw=<^FU6FZp#X^fp^ z7UD%>Sf+Rduc#p3(dVLw&`zR?#lj=*z)AkZtTj`(a4>^*(|3qAH)iIDaNdtu##Im= z(x@14OxBbk&A(krL?EARU9&XFBm3F&ZKGGTDLc}fsTlHuuA8p*K{~#Jn*ss+6Ws0w z$76)bgl;R2xOCL}AGcZ~Y30u@JlY<3JjGcWa-#%8!t$!Sm1|OmQ8-2$`5c3UONWk9 zqwX9tTOo1ll3b}|nW-~AXY5knzN`gP-L#AdhNuuP+;G$8+VES%Uc5Oxxdz)SXtTGC z!lz7S)YISRxJ%TH+7D%JKARG6WY~MtgK^7Y1@m}6iU6liax^spA!R^i@p^YG!aH<^ zN1WBndU`iv!8S@nCMH{Af3Dm;D*h)P{kM&(SzIZr%>ng-q^S2gT<;;RtC+}!)>7!NH!kxO69u1v*T;>vnuKrz)Q zyNSMqb`F_y%h2^mIb0cC#d=y{F1<&05!fkcc(fkmJ)yJj@$(sv#z%(;WnYt=WDB?I zkP^?fFROlY-@87>+D4(sc50LhMaqsxD#b521##T`%HROuox)V5rO3f*Wg=Co6pb2; zTxw?5u?#27=8Lhx4CG-~UWb`jB+p7In?$hha=f`M-}2tC^!>%fdB+0+q(!?t8)XB; zBIbpF=*R?AVJTxzd^%M-yDI6_)~q?(h*r$neXf-j4tkIJ%JQcz+LIisE4cR0b4y)r z-`>p&!b7I->g-6?lnkDx?7u&bb9X{bQ%Q-iUhiN`x2z$7NNgo9Q@>bg|5Jxy;IgHn zQP91n^n$IVXVZzO=;EqbymIEWl78~hj^tV$tauZQ$@?**c!yhGaO=ijY2T7FnO3OF ze8ll3r4}QG$Yl5qdsLm4u{RC~9 z>ut&KHN-FR;d7&=gC`F!%lTX){lRlZ`2%Jg}E?%9A!Q%0tLO@1};_<5;Bf`ki+Sv)?r7G#bXkX4AALWi3 z{M2K%hc>x+RKHbfeCp78OWDOqu3G4*e|2wz+s%0tL#~{zrbw&bBX4i>;o5Us!((bF zP7e30xlc;PmJLTQl+rWqwDgqBy{@4--fOcIs?POh()PlW7a!)go$m5raBtZjNIom6 zHFYUp!?5SCOulveIhlcO5#@}nwV<5JGKjgGAg#r$Jhpn#0&R_!*Jy~YoR;AemDaWT zqWzrB^_D7sBFx7Z*EK&h^M90bq~eQ@#7WT9ShBluOgk(O*c%r4%7xBKNV@|W0bmEbyHd+t9kADD31pVPcL&NPdw?_ zmJoL0zT>2-mZxqQG*Vn6=HABBQpy!3oOvAYkk8G|9&|YvpBN8*&u=r4e<(r)-K}0p zD0Rh?n<|y7mDV|uu6>s|AH#2ooS#?8w~hBwS*4vn#yFv2xiNWc(?Js!J>72iCUHiS z$S^{`i6YrOC+ANA)8mB5D1I8fgQa2Ne7i__L2k_VDZ0o)gClW^(RI zionyb(F!WdSS1q7DEkKHDu@=v<{|K5MD(bCB0hl_ULH`I7m|hcN9U8<(9Gv5Zxia$ z3{$E$T9ImxFJdo|7LXixVGm&v)6&SuN=DX(xb7k@Bc|{+&}h{j^j!RqI7zftY^HVa z4o7P&s}e6@CLv{arsz}Jr)s;ceUvIqTj$nm7F3wL;p-A!77K@B&SFJ*R&iF8KE-a1Nsal&*5?tvQkMJiHJ1#Z z#*s+kOpeVws7^>T!!S=9t}o)tRVk3$zuna1n?}xC?4p!gkzX1#Ib;8lLr=v%S&Hy= zZF*^9o3=3$axT9cf&c;2qh?9TJjS;Y&-Zv7n=B_UyR(uQ80E3)1)V*b|G@V&x7D8D zxD)fEkI&sVgclrbLT?)N4ysvGDYS}Zi`R(Y+|OESryf}tS#h8b!7!b2Ue<&g8=mh- z$85zYqxdj8YMWCl2DPSez1|>!^>FL;tL)z1>!`KO&{O-VP|BrM_?q@gy?ay(?i|J0 zf~=gfVm=aBtJF5G0%z_I zo;GccZ;tGm4tVpid2A7lh#03<^@@7mN7nHimHO6=_b${$?A=b)c-3M@zSxGN{!t{D z&+Rc$w?wOjmsS*)PqKg9+`EDB%GbRstnSh6#=8b(3Cp^5{IU9EO4BIuX$DMGSD`yT9+rX%9vCk zruH^WqxH_Uk-4<^eZLPaY84FkBm-Nmu1M5bAb~#VovQRHf{GDXRF!ny9a#eO}^dZ#4?t&qa0_HW-)%2aR#GRx-EjBy&EFe_zUw z)vd+DUX!+#fn%Ov?1Hoj*JnxjaC8rTYI|!?=V5sB+GSr_HpFYLgF=S$QH=)pP4)1J8G~$j`-Z`)9r3=f0s#$wis= z?hZldbBgGtH0!W?Mb9@>?4D#zemYRv*kHFh)|__P>v!#a$Ft#bw0`uUo{+;tz{7TK z9BrD%ekyohb2-JAZ=EG!*svSN)T%=o?IVoHx$fjHMj4}Qr< zmdUKJvU1@6r$aJyiGu2jU!9J-&jN1 z%U~u9{+lQ&`rf%kDmj))Pa%I{8DCOo2ggj+Y}fpb>2*9cg-UH_HeISVLX1@8R5W+& zdGDU4Cm*G!-O2A6KB+xL&Iu&&=ye-D*qg1oA4beUV5eF7xfyrmIAW~fah(|}T(yiN zz2v}`i&>1Fu`E}Q%(tS$3=(o`ztB9p8o$5bm$EM->Z>NBka6%7N838~J(i^1PC>jJ zQTp-8Hrn&bZfjom4^4B{7VZZv9+$aUg`|d|G;LL4nr%cWI+9}S|c;Z!{yLsJEl9zBaquY3XWO^VlqE{ z85)Zk(ZG|uy_k1H_DtuKN(G*!uyj9k95w1=N@o<&eqsZ^NF|%6 z)t6jfuImsvJx%Hh>3e#Eu&FhEq06o^NXgDE2z6mKFYQ_JaP-p7p~y)m(&{z-#dor7 zABpZ+VJiCJ7mmJL13ws}42^Q22sEK@BRRRI{w9-PTkXo4@C5ukngUh6E>5^WNenjS zNhzJCSI9^837QM66$s@fTD7>ck(%wD}N4>0%w?x@$cirt({k)>#vRGP71N!? zAw_-?*IDAFX;rK6_?mp>0bM-O$IHWCurK;y`I2H^^NXpNl+(qc>wQ|1*i=qkK+Id# z6{kBBA%Cm+HEG7($6n$>RjBY`zHtUO9+D+TfIFLVxQI9J(lMj*mfeJ1vxQ>tmT859 zP%|~i(^?4b*tybz;I#1dkx0jbtV-@OYz0wWK5Crx>vz&^!kc*S2FDBQqP#Xz(5Ml# z#a0}XI;u`=V%Kn|^Gm5%M?|in4rQ$p2`Z0j;zvH?@r$B5ox9$XzR84a9Fan-`0Dxc zv7tKNDjM8s_O^h6x<)5eo-n=w#@f8fGu#(KG*88ehcX@@_li%M(D}OKN{hsVuU?FQ z(=Gr0Hj@a|vhVIVM5TZG<5_d69fc9aQ*!yiKtu|g!*q+ASpyFrJwvFkPWLB!79OiA z7<@+pM>uJi(cgW-jA>`|QU*?;|I3gbK$c5bAtQnUof0fn6@En7mA@C6(0iDuT5gh7 z*XQ9%e!zH*nFX^a=yOH|mRU_kJ^r()uz`l0wEX&SgiKj!X`v`m3hFd#}7g#~2136pPgQ9WmPz z;91(EM|omS@#o(=Q@i7*3?jb5+s-Ev$(f*f0DhEkK|Qj4_?o^fp;wz_bWe>+4qQeC znVW4;K*i|(B$60Q%!CTWLrzN0Ru&LW`aO~qYka~a z35U+;y9J3&4OXu*pE7DS@Rny^FAnJ`#@8c}9w=JM)puiSsi9VJHsO_w(wea6h>76m z-gD=U+ovbB{}j8x%0KNcRr8=tRxt;yL?c55XQ(jS?acyfQc>&^UX%)P^d0f~aU~P7 zZuX?27buLE-Enpj;cW$GSO>Kvi!chK$vNo>&6l~$DJPDn3C-bSt|M`98%AF=Azq7k z1U3IGsBw#`_KK8ffH}0@J2pyt?k*ftM0Rz0UEZ?waQFbXfuIInThT`Pz?4Ve+psuk z=L~~_aN`l_ z>{6fDDn+yx5gjfJ3$tqd`S-NcIEHUT)mele9p`OL7`RE#m-v06HXWg3HXiBV^T6^~ zT+Yi;k{aNNlWNH(b&@d|`QosF)^{>NtyB}XJ973y-&pCSG=94Guy3Ijm1>l`T6_Q4xjhIOMK%jceOcQT(m4J zRG0hm=`pqQ%sU%__h}WB?OK`)fXXAR<)|h)?COgwtQ{r7zO$Gk&Yseb!6tPp9;TI1 z%JmMus^hID5%x;P*Y{iw8+YHhs3RYy?PJ~z*iUSkf$v2)Q}pG;u$$-bK_;Fju@llj z=8y4BKzZ?Kr>c?cAq9=6phmZ#=!|`&p!1n_x#QVUER$B8J?0mRHQlMVsY`huN1p9J zQy;yFwdhp5{>h)Dw5+Box2CGPA=9OBY;Zi0PL*ws;|xcFD~rWe(rFPwy?kx4(C@(` za`NiCSFntNu~JfIXG4eAPuyl_O|&bV+$svoT+*vZCvMRPSg8|e^7V~R;%~T)MCaXI z&8%}X2tQtnyw7CmE^cn^q`jASxt41l?#Jg#kflpp9PWn`|cSVHNZTD8*e@xvCiF33z`DA&`JoDrv zrT=}NiFWJCi@w@wISXv0mB;VVm*lf5w1%f{^(3(fC_U-*fKUG-)>8TYBbs?jY>1xd zJ!|pL8l^cnRMm+Uk$3^pPgD9;l=5nOy{Fz2)NzOFeC4dz5uOEKTjbi4hYy0f)*84Ckc{>`cwqL8nVYfle4Z zd#F2u2|Hq5>L+dqdLH&Dx(P2c@J*x+*TX6+i?gFlSFH$_f{NC2S-Y*kM)ic4sB+!r z$7}Qn4&#MWnq2EAnkihGC-bdb_OA|AE2ZYu@u$LN&FT&F(faRDg$z)jV2^a?C#c<3 z;IRGxXR90Xu%)(R<)U<6OHg%ie*U5w!!s5Ww24={q5Q8{J5b?#Xm@rV>_O5vu8!{` z?+z?Ddd{Qoh$8v3Kfnl&Ed+#v(WnKM@OTmKo~oK|Sy4u%<(X`+u=|qK_QW!MZ;b1~ zvzl9L5naKqL{6UwbST)ttZmSRDR}lLwKD# zmFDo(>+2@COa4W=iN0Tyu%jn%(yq7lAW&1_IbG4!oSx+Bn;bwI{InXpD`%NPN3Zz~ zcYQT8I5*#utvw0BH|Or!YGCDq0=VT`g9Q?KTT74DiQx)M`+N5;MWBR7Y2{%sOWHDI z(>)pW*vjJOdBuH5-k$YPFpYQ;<{$ynV!0^9i4Ww0)s% zF!SgNy42K8!0r1&c7kI8XgUu@JP!^~*fh3Ykq=#tB1NuC)gjWsDCsR}B__}fD?6&M zkvaOryk67Ex-(@s;S^^&t(oKIl(75b#aUFG>EIo{C>xfRv%FUVnnM)a>%3$K@!C_y zlrfvsk9s;6Y+p>?w_<-oJ}3s|-d}aTE4YW+&o{90ZtKda6L!Db))&iqyx3_Xp}EH8 zhId3~1fq_m*VY0*WM7QHlrZX_*AY@Yg-SXiCZd}ocigfYyY}o-ll$ddsErBvo22=x z*auL0e?h6L{zJYsCRT(G2)?7x@W@PgyX#V+LhTAv)W+ghjMDVd2<~h*_W7f8M{Nrf z+JMbisBq2iyRAgsmyYnbG^umnLAyO2YLef#TM?okJ;B0j)8C7}HOl8O zc^xC_iw|0*9}xLo)%J^WyJGYO+O={!e%OaGUyk@~->MbWG}=NgTXz*A$nW1w!^p9OpSaOlu?GqL|hO zj#xdl;qa@WzJKR~9WI4!PxP3$K55{1%i7hkF8*DqUAshjy?h1cEEHn7fs1Rri9N=P z13So6PJ$XJ4~--kjLl8lZ_ejK>rl7JQaVRa)eh`#IYS$+uH3j07OmDukf(D;MUYIf z46W(rWn+_esQ`}KoEN>a0V`cRadxT*^>EF02v(g1cQ`d6AA*-3 zb#8O?pzianWDGd?r%^$n!kiaBpdtuuDnrF+u8?A3$0M&RQO8Ekx*-!IdR-)z@;l9) zqcSlk@=d0$3m;&mlJvQcS0M>M$x6is&jfz3b3$_Y9h4w$6;3%GUYQfVPYq&}1aHgb z_vFga*lWg2rcj967Oj4ZO!|?~W%>3=q@mhtOAja`t~|DwC3r?1$5eTH4C8j=O)qP1 zSEUb0h|>_)lTEA-C!)m6-?zH~=6)Y0k(+~Wq1LG0 zcu>SRRLn@LuKVn+Zrfem8;x|BE^V9s;kqtuHY#n5qy|*TxX40}cfvE8eDOD#OClPw zwg~VR2RQ}jL~1R@JXz)D@*}j-u7)XL99ZwV%@BRqEZM+53&4xqkgm?pCX+!<+gUhN zJ7Ug`yiP5-Ezo=$!-V?1zcT0bcICP(jpsqnq?E_=XjKwvRIro}l)WbkJ`N+9)oJ9b z=Es=b>3$ZGcmz?12I>GSW`CLx-;c;o3+G#k-gIl&a@+{no18HyKk7r1i?2bQrb*#2| z`1fBg2o*BHn|M_}#l$*B5+p89?yhv2#;lmAq47>~f`G8m8ZlEvIHr+i>-EB@riOq6 z;q!W4bw`M%nx>k^%qxisv;FP1h2h4Jd5?YUlUQ!1u}`jVeLy#0^$<1g&MHS`9+_-y zczS57$QSqI3n%WXEr@8l&y5}9d_|fqaZtWmND70Qo9?nr)VpcM*0+1n3a02sgdEjj zc9+lKmW9xS4`-5z;Sm&LR3cPv=jp^n{*4fk7UYYR8* z95aWJub+tJPbw;kQTZy*-~e19Up(c)R#fxY3dh&zCi56U2P z8|H3-t>Jd2hIV%ho#d5dm0>9?bdBwyY`>)yI^SYW$IJw!W9Q(4va@i2J?P*Hw$WVD zLD#}m|F)H}g&`;!jp4SvK42Pza*q(I7zuTqG@wYntzWtwtjrCVH|7%7{Tlp|v5!{oQZ0vNv^pf%oF8H-CxQOdo?VheKHz& zkk*hnESo$jWlWce0tCj{*ioN8ufKT-L(^~~)$r~OM(jE{Bp)ZzdxR<;ew6oJ9g&mS zIVuln%{1~hM%;xjy)EZN-A<-9SxoH>aWm!C!Hg}w#b#(CP?XywKuwf+F}4pbx4d1e zQ3oHXh>7E}4{fM@Y>eSeM4h2Cld{}A^IHvg9LAric|x7uxjsf9o+7ol{NVCEUox>V z;>)4oSLGAa6XBaub$o1~oWul3SADOsL8+(|Ns_5auFzkvhDIYSqw?mk^0HB;?F5wU zCu6pWr^8Vac^S_IV>sS(-4xoNRf5v;KkIH6@8h2*l~0P2lS0ELx;^*s{t+*(t4xD^ zoYP`X#9UIdLa*=$qWg6AI^76e8quC^$^D?d%{?`~mT zFe6wSe=QZpTmhrB_@RP-$8sSIm^vK5yu@o{Xk^65$i~6Q$id9W$PQ>WI9S0a8|<3@ zYuybT^#R$(ZwXmJVvzQ00(L`2M%Xnw=)|utkeMA!IkjDHwR^BV`E{18lfTo9>WAw2j-ww-{P2A0H?=~acn=w zv9N=F`MY#X>`d(7+u_GJPN0lG#IbMz&H5pZlliA~985pS$Hc+(lPpZ2iGQpI69)_U zqWGZ<4i=8@bAudar104ZbvB$_5(+k|Otb z^^Mqc8IAN<4GmdYjEoFf8FiVM^z^w{nL*1M85rsF|ML`@VDJE<7+pJuubsri!Op~l zMoum&Ck7~4KvCa@(*Hj+l#Pp-{hNj|D8pENp;Ui@%@$}rn8M8r^&Oy8e}+#Nv{J>f5imi~?57fSULu`l)a6We+Bu)w%$zA6$ECnM{3di$sKN8Zlx0rYEk|FSX} zZ~^UN)MsbZH!v{JXJ^r4W@2LoV}ON~%K*$$2K+xN6DKPx$8XBSh4sT3M>YmV5WoL> z8Gp|_0rl>`=mm(S0O8i(y*`KiTuy+@D=UZj`A24E$Gp5JgoL2P6KCfm;LXgA06wV8{{sJ< zX%aw9Ou(ADz5M_U?XJd`&0Pmu;=XzDh|LkG>(^+_JP>o{Riap%U{QbweRl^ zejF(w_Vw^0&xeX@7u!j{Ggxc_1n2 zP)6qXhsg8G-CY=AEeQW2{vUz>RSXXPgT^@rKY#xfe4vwmh!1q~o3sG!+yO>d;68u; zd>;4}e4sNw;J|oyzkK20IbK|ZwZpkPhXr)7fYcfMI}QYZ`xX4YpIq-(Cnz}L?L7!? zf-6903t)i*q}qVD8&Hp*hkwU+gFt|H{pwvH5N8PN+-Tq*LLg2MaH26dN*bJD3;`#A zT0_9`z7W8;369(~fq;Vz!D-77Js>bZ29)D~#C?8#{=-)XXl{SU4}(DRA&^1{qzD2j zfj~+jkg~7790ED_;1WcFTg6|K6+j?)5XdtK>?q2opilq~kf)}m0BLS}dwXqdZFO~Z zRaMpRyu2w8ND~C|1_Eh;Kw3pbM>aN&Adof)q+L{W6oi+S4y~+!FfAY~A~FDhG(aG= z5J)uyQu$Q?myaJm4h;=eR#pNoaKM@E>FEiWn?YHan3$jn7cLZ{pbVp;j-a89qN9%) z8h+f|JjTEn17UrASXfqe7Q7=O4sC3J8S(=J(hY%heiZ=7(+GhCjg5@~X#ra;Aan;s zG&MB=>R)>L-wrUma;1@gVD{!suzh$Q3SF?a{sMEs20zW_h?~M#R))^Q+ zF*0s2F>SiId;z@JCMKW3`-2C7>KIJCuu=#J0O$9KiOI^9E0d_GV-hk zK!XFS_1W23FbV*;jEu}Ta1dZ%nBn8w6BOJR5(56f(eV)QVgujYd~9yM3rYb#I(i2R zT>|*P_xA3iqrXE!8bv@D{ED9oxQaoW13Gqa%z%c5#`oYL%*nYVDtas_c_J-+Dj{(! zB61`sc)-iM$HB3~%)CuUw?Rdas=lp90%%Y(0z}x~x>$lMa1`$yB z@$qqHX6Ani^>YIBUvqePct7X;kHwrb{;KK!#Q1v(m~MY({6z-hoHPEy?7cr`{JjX` z>CbQf#Q6JTei-8~fd7{;{$BKf$@8y0!>EnvJI3EEASe|4!Q8?>Vfy9Ic>sx;CbO_}3nsFk}d|(Y2!krvTYI+C#w#hrWrap%p9+#27k0 zgk=^1Yl!yxCRTxlaI zz5zn`17P)?`|}5J@GSn#e|>h|0}th2pUZc_Q48OB@Wt>?g#-ATtMfA>ZT|}oGX4ra zc*H+9PyTU5zSROe@1EDT)~j#Ae+?Y{ z!V<=RLVr$Af&AaxZx#8e7C#S){}TDZN*3%X?cD!fjX&s)pGG&x^(*7+-#vcM)3O>-EbNRo$|8Yfr*CjBe^z`(Aqi0^eeEBQ*-(bHF{6P^%M`dMY`T6#wL*bTNuE89|o7*-Q8gQ1=QkKBtI|x z9KY^sPfbls0Q_%ZP>a8XkB@=2G&eT`$r%_Jens-{@z3S_3>Gkcm;Z+_5PouU66j1( z0a*R{6As9K?sh+a{yjMIhhcD{P;+A=kpEAh|CRJV-U8>#0sOr`EeGIZ{Lyj%%-;J4 z%K_)N|G{#=c>>sS0L;q%R~!ID{%=?gaQ}Wepcx4I`*Hxn1-NUT@DOwmHE{_6LI6R9 zP(e6BJ!~$(VR#}!!oUq)frpkB&YNX@BcE{|1(PtKRph^I_2+etiMe5KfCJl zt4ltAne6}blmX_4zfAW3xp`nF3v9{Z9~!&AEj;{Xvj542+rLb9U@3lcf0^umne6{y zBKqsrf2IZgN0Yq)*rh-J2Onnd{R5Nz{PsUE+0PTeOm>(h{I4+CMgI*ZI}7vw1KDH= A2LJ#7 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWMA.wma b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWMA.wma new file mode 100644 index 0000000000000000000000000000000000000000..ec2e9bd5b0b5ff7d7a344ce529933488f5e10a67 GIT binary patch literal 27747 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWMV.wmv b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testWMV.wmv new file mode 100644 index 0000000000000000000000000000000000000000..d5e67e686f86819382a0ea2d9aa1d30ff86ad6cc GIT binary patch literal 113878 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 literal 0 HcmV?d00001 diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testXML.xml b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testXML.xml new file mode 100644 index 0000000..a01a402 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-documents/testXML.xml @@ -0,0 +1,48 @@ + + + + + Tika test document + + Rida Benjelloun + + Java + + XML + + XSLT + + JDOM + + Indexation + + Framework d'indexation des documents XML, HTML, PDF etc.. + + http://www.apache.org + + 2000-12-01T00:00:00.000Z + + test + + application/msword + + Fr + + Archimède et Lius à Châteauneuf testing chars en été + + \ No newline at end of file diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/grokIfNotMatchDropRecord.conf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/grokIfNotMatchDropRecord.conf new file mode 100644 index 0000000..bdd56ee --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/grokIfNotMatchDropRecord.conf @@ -0,0 +1,75 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +morphlines : [ + { + id : morphline1 + importCommands : ["org.kitesdk.**"] + + commands : [ + { + if { + conditions : [ + { + not { + grok { + dictionaryString : """ + POSINT \b(?:[1-9][0-9]*)\b +SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME} +# Months: January, Feb, 3, 03, 12, December +MONTH \b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b +MONTHNUM (?:0?[1-9]|1[0-2]) +MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9]) +HOUR (?:2[0123]|[01]?[0-9]) +MINUTE (?:[0-5][0-9]) +# '60' is a leap second in most time standards and thus is valid. +SECOND (?:(?:[0-5][0-9]|60)(?:[:.,][0-9]+)?) +TIME (?!<[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND})(?![0-9]) +IP (?%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}""" + } + extract : inplace + numRequiredMatches : all # default is atLeastOnce + findSubstrings : false + addEmptyStrings : false + } + } + } + ] + then : [ + { logDebug { format : "found no grok match; dropping record: {}", args : ["@{}"] } } + { dropRecord {} } + ] + else : [ + { logDebug { format : "found grok match; retaining record: {}", args : ["@{}"] } } + ] + } + } + + { logDebug { format : "output record: {}", args : ["@{}"] } } + ] + } +] diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/ifDetectMimeType.conf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/ifDetectMimeType.conf new file mode 100644 index 0000000..cfe0893 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/ifDetectMimeType.conf @@ -0,0 +1,74 @@ +# Copyright 2013 Cloudera Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# this variable can be overriden in flume.conf or MapReduceIndexerTool CLI +MY.MIME_TYPE : myDefault + +# This morphline routes the record to the southpole if it's an avro file, +# otherwise it routes the record to the northpole. +morphlines : [ + { + id : morphline1 + importCommands : ["org.kitesdk.**", "org.apache.solr.**"] + + commands : [ + { + # auto-detect MIME type if it isn't explicitly supplied + detectMimeType { + includeDefaultMimeTypes : true + mimeTypesFiles : [target/test-classes/custom-mimetypes.xml] +# mimeTypesString : +# """ +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# """ + } + } + + { + if { + conditions : [ + { contains { _attachment_mimetype : [${MY.MIME_TYPE}] } } + ] + then : [ + { logDebug { format : "found grok match: {}", args : ["@{}"] } } + { setValues { "flume.selector.header" : goToSouthPole } } + ] + else : [ + { logDebug { format : "found no grok match: {}", args : ["@{}"] } } + { setValues { "flume.selector.header" : goToNorthPole } } + ] + } + } + + { logDebug { format : "output record: {}", args : ["@{}"] } } + ] + } +] diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/noOperation.conf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/noOperation.conf new file mode 100644 index 0000000..f5b493c --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/noOperation.conf @@ -0,0 +1,27 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +morphlines : [ + { + id : morphline1 + importCommands : ["org.kitesdk.**"] + + commands : [ + { logDebug { format : "output record: {}", args : ["@{}"] } } + ] + } +] diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/readClob.conf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/readClob.conf new file mode 100644 index 0000000..ac9df9b --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/readClob.conf @@ -0,0 +1,32 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +morphlines : [ + { + id : morphline1 + importCommands : ["org.kitesdk.**", "org.apache.solr.**"] + + commands : [ + { + readClob { + charset : UTF-8 + } + } + { logDebug { format : "output record: {}", args : ["@{}"] } } + ] + } +] diff --git a/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/solrCellDocumentTypes.conf b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/solrCellDocumentTypes.conf new file mode 100644 index 0000000..88e6345 --- /dev/null +++ b/code/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/test-morphlines/solrCellDocumentTypes.conf @@ -0,0 +1,260 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# Application configuration file in HOCON format (Human-Optimized Config Object Notation). +# HOCON syntax is defined at http://github.com/typesafehub/config/blob/master/HOCON.md +# and also used by Akka (http://www.akka.io) and Play (http://www.playframework.org/). +# For more examples see http://doc.akka.io/docs/akka/2.1.2/general/configuration.html + +# morphline.conf example file +# this is a comment +// this is yet another comment + +morphlines : [ + { + id : morphline1 + importCommands : ["org.kitesdk.**", "org.apache.solr.**"] + + commands : [ + { separateAttachments {} } + + # java command that doesn't do anything except for test compilation + { + java { + imports : "import java.util.*;" + code: """ + List tags = record.get("javaWithImports"); + return child.process(record); + """ + } + } + + # java command that doesn't do anything except for test compilation + { + java { + code: """ + List tags = record.get("javaWithoutImports"); + return child.process(record); + """ + } + } + + { + # used for auto-detection if MIME type isn't explicitly supplied + detectMimeType { + includeDefaultMimeTypes : true + mimeTypesFiles : [target/test-classes/custom-mimetypes.xml] + } + } + + { + tryRules { + throwExceptionIfAllRulesFailed : true + rules : [ + # next top-level rule: + { + commands : [ + { logDebug { format : "hello unpack" } } + { unpack {} } + { generateUUID {} } + { callParentPipe {} } + ] + } + + { + commands : [ + { logDebug { format : "hello decompress" } } + { decompress {} } + { callParentPipe {} } + ] + } + + { + commands : [ + { + readAvroContainer { + supportedMimeTypes : [avro/binary] + # readerSchemaString : "" # optional, avro json schema blurb for getSchema() + # readerSchemaFile : /path/to/syslog.avsc + } + } + + { extractAvroTree {} } + + { + setValues { + id : "@{/id}" + user_screen_name : "@{/user_screen_name}" + text : "@{/text}" + } + } + + { + sanitizeUnknownSolrFields { + solrLocator : ${SOLR_LOCATOR} + } + } + ] + } + + { + commands : [ + { + readJsonTestTweets { + supportedMimeTypes : ["mytwittertest/json+delimited+length"] + } + } + + { + sanitizeUnknownSolrFields { + solrLocator : ${SOLR_LOCATOR} + } + } + ] + } + + # next top-level rule: + { + commands : [ + { logDebug { format : "hello solrcell" } } + { + # wrap SolrCell around an HTML Tika parser + solrCell { + solrLocator : ${SOLR_LOCATOR} + # captureAttr : true # default is false + capture : [ + + # twitter feed schema + user_friends_count + user_location + user_description + user_statuses_count + user_followers_count + user_name + user_screen_name + created_at + text + retweet_count + retweeted + in_reply_to_user_id + source + in_reply_to_status_id + media_url_https + expanded_url + + # file metadata + file_download_url + file_upload_url + file_scheme + file_host + file_port + file_path + file_name + file_length + file_last_modified + file_owner + file_group + file_permissions_user + file_permissions_group + file_permissions_other + file_permissions_stickybit + ] + + fmap : { content : text, content-type : content_type } # rename "content" field to "text" fields + dateFormats : [ "yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd"] # various java.text.SimpleDateFormat + # xpath : "/xhtml:html/xhtml:body/xhtml:div/descendant:node()" + uprefix : "ignored_" + lowernames : true + # solrContentHandlerFactory : org.apache.solr.tika.TrimSolrContentHandlerFactory + + # Tika parsers to be registered. If multiple parsers support the same MIME type, + # the parser is chosen that is closest to the bottom in this list: + parsers : [ + { parser : org.apache.tika.parser.asm.ClassParser } + # { parser : org.gagravarr.tika.OggParser, additionalSupportedMimeTypes : [audio/ogg] } + { parser : org.gagravarr.tika.FlacParser } + { parser : org.apache.tika.parser.audio.AudioParser } + { parser : org.apache.tika.parser.audio.MidiParser } + { parser : org.apache.tika.parser.crypto.Pkcs7Parser } + { parser : org.apache.tika.parser.dwg.DWGParser } + { parser : org.apache.tika.parser.epub.EpubParser } + { parser : org.apache.tika.parser.executable.ExecutableParser } + { parser : org.apache.tika.parser.feed.FeedParser } + { parser : org.apache.tika.parser.font.AdobeFontMetricParser } + { parser : org.apache.tika.parser.font.TrueTypeParser } + { parser : org.apache.tika.parser.xml.XMLParser } + { parser : org.apache.tika.parser.html.HtmlParser } + { parser : org.apache.tika.parser.image.ImageParser } + { parser : org.apache.tika.parser.image.PSDParser } + { parser : org.apache.tika.parser.image.TiffParser } + { parser : org.apache.tika.parser.iptc.IptcAnpaParser } + { parser : org.apache.tika.parser.iwork.IWorkPackageParser } + { parser : org.apache.tika.parser.jpeg.JpegParser } + { parser : org.apache.tika.parser.mail.RFC822Parser } + { parser : org.apache.tika.parser.mbox.MboxParser, additionalSupportedMimeTypes : [message/x-emlx] } + { parser : org.apache.tika.parser.microsoft.OfficeParser } + { parser : org.apache.tika.parser.microsoft.TNEFParser } + { parser : org.apache.tika.parser.microsoft.ooxml.OOXMLParser } + { parser : org.apache.tika.parser.mp3.Mp3Parser } + { parser : org.apache.tika.parser.mp4.MP4Parser } + { parser : org.apache.tika.parser.hdf.HDFParser } + { parser : org.apache.tika.parser.netcdf.NetCDFParser } + { parser : org.apache.tika.parser.odf.OpenDocumentParser } + { parser : org.apache.tika.parser.pdf.PDFParser } + { parser : org.apache.tika.parser.pkg.CompressorParser } + { parser : org.apache.tika.parser.pkg.PackageParser } + { parser : org.apache.tika.parser.rtf.RTFParser } + { parser : org.apache.tika.parser.txt.TXTParser } + { parser : org.apache.tika.parser.video.FLVParser } + { parser : org.apache.tika.parser.xml.DcXMLParser } + { parser : org.apache.tika.parser.xml.FictionBookParser } + { parser : org.apache.tika.parser.chm.ChmParser } + ] + } + } + + { generateUUID { field : ignored_base_id } } + + { + generateSolrSequenceKey { + baseIdField: ignored_base_id + solrLocator : ${SOLR_LOCATOR} + } + } + + ] + } + ] + } + } + + { + loadSolr { + solrLocator : ${SOLR_LOCATOR} + } + } + + { + logDebug { + format : "My output record: {}" + args : ["@{}"] + } + } + + ] + } +] diff --git a/code/flume-ng-sinks/pom.xml b/code/flume-ng-sinks/pom.xml new file mode 100644 index 0000000..2b7bec5 --- /dev/null +++ b/code/flume-ng-sinks/pom.xml @@ -0,0 +1,98 @@ + + + + + 4.0.0 + + + flume-parent + org.apache.flume + 1.7.0 + + + org.apache.flume + flume-ng-sinks + Flume NG Sinks + pom + + + + + org.apache.rat + apache-rat-plugin + + + + + + flume-hdfs-sink + flume-irc-sink + flume-ng-hbase-sink + flume-ng-elasticsearch-sink + flume-ng-morphline-solr-sink + flume-ng-kafka-sink + + + + + + hadoop-1.0 + + + flume.hadoop.profile + 1 + + + + + + hadoop-2 + + + flume.hadoop.profile + 2 + + + + + flume-dataset-sink + flume-hive-sink + + + + + hbase-1 + + + !flume.hadoop.profile + + + + + flume-dataset-sink + flume-hive-sink + + + + + + + From f665138a11f4156315478229bcfbf42fe9f5fd64 Mon Sep 17 00:00:00 2001 From: TalkData <718034718@qq.com> Date: Wed, 30 Jan 2019 14:14:12 +0800 Subject: [PATCH 03/45] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ad8810e..223b816 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # Big-Data-Project Hadoop2.x、Zookeeper、Flume、Hive、Hbase、Kafka、Spark2.x、SparkStreaming、MySQL、Hue、J2EE、websoket、Echarts + +### 所有软件下载地址 +链接:https://pan.baidu.com/s/1aF_VmdXJVIjeB0WzAtfeEQ +提取码:cuao From 156bf0cc08e8c374d20f0cf306161060b9ff6036 Mon Sep 17 00:00:00 2001 From: changeforeda <718034718@qq.com> Date: Wed, 30 Jan 2019 15:54:34 +0800 Subject: [PATCH 04/45] update code 19.1.30 --- .../.idea/artifacts/TestSpark_jar.xml | 8 + code/TestSpark/.idea/compiler.xml | 13 + code/TestSpark/.idea/hydra.xml | 9 + .../.idea/libraries/scala_sdk_2_11_12.xml | 25 ++ code/TestSpark/.idea/misc.xml | 17 + code/TestSpark/.idea/workspace.xml | 389 ++++++++++++++++++ code/TestSpark/TestSpark.iml | 2 + .../out/artifacts/TestSpark_jar/TestSpark.jar | Bin 0 -> 4497 bytes code/TestSpark/pom.xml | 53 +++ .../src/main/resources/META-INF/MANIFEST.MF | 3 + .../src/main/scala/TestStreaming.scala | 23 ++ code/TestSpark/src/main/scala/test.scala | 20 + .../webapp/WEB-INF/applicationContext.xml | 43 ++ .../src/main/webapp/WEB-INF/log4j.xml | 38 ++ .../TestSpark/src/main/webapp/WEB-INF/web.xml | 119 ++++++ .../target/classes/META-INF/MANIFEST.MF | 3 + .../classes/TestStreaming$$anonfun$1.class | Bin 0 -> 1122 bytes .../classes/TestStreaming$$anonfun$2.class | Bin 0 -> 1383 bytes .../classes/TestStreaming$$anonfun$3.class | Bin 0 -> 1271 bytes .../target/classes/TestStreaming$.class | Bin 0 -> 2940 bytes .../target/classes/TestStreaming.class | Bin 0 -> 605 bytes .../target/classes/test$$anonfun$1.class | Bin 0 -> 1082 bytes .../target/classes/test$$anonfun$2.class | Bin 0 -> 1347 bytes .../target/classes/test$$anonfun$3.class | Bin 0 -> 1235 bytes code/TestSpark/target/classes/test$.class | Bin 0 -> 2743 bytes code/TestSpark/target/classes/test.class | Bin 0 -> 549 bytes 26 files changed, 765 insertions(+) create mode 100644 code/TestSpark/.idea/artifacts/TestSpark_jar.xml create mode 100644 code/TestSpark/.idea/compiler.xml create mode 100644 code/TestSpark/.idea/hydra.xml create mode 100644 code/TestSpark/.idea/libraries/scala_sdk_2_11_12.xml create mode 100644 code/TestSpark/.idea/misc.xml create mode 100644 code/TestSpark/.idea/workspace.xml create mode 100644 code/TestSpark/TestSpark.iml create mode 100644 code/TestSpark/out/artifacts/TestSpark_jar/TestSpark.jar create mode 100644 code/TestSpark/pom.xml create mode 100644 code/TestSpark/src/main/resources/META-INF/MANIFEST.MF create mode 100644 code/TestSpark/src/main/scala/TestStreaming.scala create mode 100644 code/TestSpark/src/main/scala/test.scala create mode 100644 code/TestSpark/src/main/webapp/WEB-INF/applicationContext.xml create mode 100644 code/TestSpark/src/main/webapp/WEB-INF/log4j.xml create mode 100644 code/TestSpark/src/main/webapp/WEB-INF/web.xml create mode 100644 code/TestSpark/target/classes/META-INF/MANIFEST.MF create mode 100644 code/TestSpark/target/classes/TestStreaming$$anonfun$1.class create mode 100644 code/TestSpark/target/classes/TestStreaming$$anonfun$2.class create mode 100644 code/TestSpark/target/classes/TestStreaming$$anonfun$3.class create mode 100644 code/TestSpark/target/classes/TestStreaming$.class create mode 100644 code/TestSpark/target/classes/TestStreaming.class create mode 100644 code/TestSpark/target/classes/test$$anonfun$1.class create mode 100644 code/TestSpark/target/classes/test$$anonfun$2.class create mode 100644 code/TestSpark/target/classes/test$$anonfun$3.class create mode 100644 code/TestSpark/target/classes/test$.class create mode 100644 code/TestSpark/target/classes/test.class diff --git a/code/TestSpark/.idea/artifacts/TestSpark_jar.xml b/code/TestSpark/.idea/artifacts/TestSpark_jar.xml new file mode 100644 index 0000000..d10e91d --- /dev/null +++ b/code/TestSpark/.idea/artifacts/TestSpark_jar.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/TestSpark_jar + + + + + \ No newline at end of file diff --git a/code/TestSpark/.idea/compiler.xml b/code/TestSpark/.idea/compiler.xml new file mode 100644 index 0000000..ac75bec --- /dev/null +++ b/code/TestSpark/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/TestSpark/.idea/hydra.xml b/code/TestSpark/.idea/hydra.xml new file mode 100644 index 0000000..c5d8b51 --- /dev/null +++ b/code/TestSpark/.idea/hydra.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/code/TestSpark/.idea/libraries/scala_sdk_2_11_12.xml b/code/TestSpark/.idea/libraries/scala_sdk_2_11_12.xml new file mode 100644 index 0000000..1d1d2a8 --- /dev/null +++ b/code/TestSpark/.idea/libraries/scala_sdk_2_11_12.xml @@ -0,0 +1,25 @@ + + + + Scala_2_11 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/TestSpark/.idea/misc.xml b/code/TestSpark/.idea/misc.xml new file mode 100644 index 0000000..919019a --- /dev/null +++ b/code/TestSpark/.idea/misc.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/TestSpark/.idea/workspace.xml b/code/TestSpark/.idea/workspace.xml new file mode 100644 index 0000000..b0c22b4 --- /dev/null +++ b/code/TestSpark/.idea/workspace.xml @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

  • 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