From 76a039aaf5667e6c9392faa6dfa29c3ebfc46d05 Mon Sep 17 00:00:00 2001 From: Anusha Ranganathan Date: Fri, 13 Apr 2012 23:09:27 +0100 Subject: [PATCH] Merged code with Dataflow tag 0.3rc1 --- README.txt | 2 +- debian/README | 2 +- debian/changelog | 11 + debian/config | 8 +- debian/control | 4 +- debian/copyright | 2 +- debian/databank.install | 3 + debian/docs | 2 +- debian/postinst | 27 +- development.ini | 36 +- docs/Dependencies.pdf | Bin 46907 -> 0 bytes docs/Dependencies.txt | 49 ++ docs/accessLogWithheaderInfo_2011_03_16.csv | Bin 51108 -> 0 bytes docs/accessLogWithheaderInfo_2011_03_16.pdf | Bin 30085 -> 0 bytes .../run1_5Fail_2Error_pyhonTestMessage.txt | 91 --- .../run1_5Fail_2Error_wiresharkMessage.pcap | Bin 608039 -> 0 bytes ...un2_testDeleteEmbargo_pyhonTestMessage.txt | 39 - ...n2_testDeleteEmbargo_wiresharkMessage.pcap | Bin 13037 -> 0 bytes ...un3_testChangeEmbargo_pyhonTestMessage.txt | 39 - ...n3_testChangeEmbargo_wiresharkMessage.pcap | Bin 12807 -> 0 bytes .../run4_testFileUpdate_pyhonTestMessage.txt | 37 - .../run4_testFileUpdate_wiresharkMessage.pcap | Bin 25186 -> 0 bytes ...stGetDatasetByVersion_pyhonTestMessage.txt | 69 -- ...tGetDatasetByVersion_wiresharkMessage.pcap | Bin 64664 -> 0 bytes ...estMetadataFileUpdate_pyhonTestMessage.txt | 37 - ...stMetadataFileUpdate_wiresharkMessage.pcap | Bin 11560 -> 0 bytes ...un7_testPutUpdateFile_pyhonTestMessage.txt | 43 -- ...n7_testPutUpdateFile_wiresharkMessage.pcap | Bin 31172 -> 0 bytes ...8_testPutMetadataFile_pyhonTestMessage.txt | 35 - ..._testPutMetadataFile_wiresharkMessage.pcap | Bin 9595 -> 0 bytes .../run1_all_pass_pyhonTestMessage.txt | 8 - .../run1_all_pass_wiresharkMessage.pcap | Bin 687338 -> 0 bytes ...n2_testDeleteEmbargo_pythonTestMessage.txt | 25 - ...n2_testDeleteEmbargo_wiresharkMessage.pcap | Bin 12742 -> 0 bytes ...n3_testChangeEmbargo_pythonTestMessage.txt | 25 - ...n3_testChangeEmbargo_wiresharkMessage.pcap | Bin 12372 -> 0 bytes .../run4_testFileUpdate_pythonTestMessage.txt | 31 - .../run4_testFileUpdate_wiresharkMessage.pcap | Bin 27984 -> 0 bytes ...tGetDatasetByVersion_pythonTestMessage.txt | 99 --- ...tGetDatasetByVersion_wiresharkMessage.pcap | Bin 121229 -> 0 bytes ...stMetadataFileUpdate_pythonTestMessage.txt | 27 - ...stMetadataFileUpdate_wiresharkMessage.pcap | Bin 18157 -> 0 bytes ...n7_testPutUpdateFile_pythonTestMessage.txt | 41 - ...n7_testPutUpdateFile_wiresharkMessage.pcap | Bin 39626 -> 0 bytes ..._testPutMetadataFile_pythonTestMessage.txt | 27 - ..._testPutMetadataFile_wiresharkMessage.pcap | Bin 14711 -> 0 bytes docs/index.txt | 19 - .../LogConfigParser.py | 14 - .../broker.py | 63 -- .../getObjects.py | 86 --- .../loglines.cfg | 55 -- .../redisqueue.py | 87 --- .../solrFields.py | 102 --- .../solr_worker.py | 118 --- .../supervisor_startup.sh | 3 - .../supervisord.conf | 29 - .../logger_articlelogger.conf | 13 - .../workers_available/logger_auditlogger.conf | 13 - .../workers_available/process_redis.conf | 14 - .../workers_available/process_solr.conf | 14 - .../workers_available/worker_broker.conf | 14 - .../workers_available/worker_solr.conf | 14 - docs/using_databank_api/DatabankDemo.py | 30 +- docs/using_databank_api/README | 18 +- .../{ => lib}/HTTP_request.py | 16 +- docs/using_databank_api/lib/__init__.py | 0 .../using_databank_api/{ => lib}/multipart.py | 0 .../{ => lib}/multipartform.py | 24 - docs/using_databank_api/main.py | 111 ++- docs/using_databank_api/postingToDatabank.py | 30 +- production-jenkins.ini | 19 +- production.ini | 7 +- rdfdatabank/config/middleware.py | 1 + rdfdatabank/config/routing.py | 12 +- rdfdatabank/controllers/datasets.py | 367 ++------- rdfdatabank/controllers/error.py | 1 + rdfdatabank/controllers/items.py | 127 +++- rdfdatabank/controllers/search.py | 31 +- rdfdatabank/lib/app_globals.py | 5 + rdfdatabank/lib/file_unpack.py | 10 +- rdfdatabank/lib/utils.py | 2 + rdfdatabank/public/static/styles/basic.css | 243 +++++- rdfdatabank/templates/about.html | 35 +- rdfdatabank/templates/admin_siloview.html | 2 +- rdfdatabank/templates/admin_user.html | 2 +- rdfdatabank/templates/base.html | 49 +- rdfdatabank/templates/datasetview.html | 78 +- .../templates/datasetview_version.html | 49 -- rdfdatabank/templates/file_upload.html | 10 +- rdfdatabank/templates/files_unpack2.html | 12 - rdfdatabank/templates/home-dev.html | 53 -- rdfdatabank/templates/home-prod.html | 13 - rdfdatabank/templates/home.html | 54 +- rdfdatabank/templates/itemview.html | 41 +- rdfdatabank/templates/itemview_version.html | 11 - rdfdatabank/templates/list_of_datasets.html | 2 +- rdfdatabank/templates/rdf_manifest.html | 45 +- rdfdatabank/templates/search.html | 33 +- rdfdatabank/templates/search_form.html | 82 +- .../templates/search_response_display.html | 575 +++----------- rdfdatabank/tests/TestSubmission.py | 717 +++++++++++------- 101 files changed, 1375 insertions(+), 3019 deletions(-) delete mode 100644 docs/Dependencies.pdf create mode 100644 docs/Dependencies.txt delete mode 100644 docs/accessLogWithheaderInfo_2011_03_16.csv delete mode 100644 docs/accessLogWithheaderInfo_2011_03_16.pdf delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run1_5Fail_2Error_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run1_5Fail_2Error_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run2_testDeleteEmbargo_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run2_testDeleteEmbargo_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run3_testChangeEmbargo_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run3_testChangeEmbargo_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run4_testFileUpdate_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run4_testFileUpdate_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run5_testGetDatasetByVersion_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run5_testGetDatasetByVersion_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run6_testMetadataFileUpdate_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run6_testMetadataFileUpdate_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run7_testPutUpdateFile_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run7_testPutUpdateFile_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run8_testPutMetadataFile_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run8_testPutMetadataFile_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run1_all_pass_pyhonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run1_all_pass_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run2_testDeleteEmbargo_pythonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run2_testDeleteEmbargo_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run3_testChangeEmbargo_pythonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run3_testChangeEmbargo_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run4_testFileUpdate_pythonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run4_testFileUpdate_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run5_testGetDatasetByVersion_pythonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run5_testGetDatasetByVersion_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run6_testMetadataFileUpdate_pythonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run6_testMetadataFileUpdate_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run7_testPutUpdateFile_pythonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run7_testPutUpdateFile_wiresharkMessage.pcap delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run8_testPutMetadataFile_pythonTestMessage.txt delete mode 100644 docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run8_testPutMetadataFile_wiresharkMessage.pcap delete mode 100644 docs/index.txt delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/LogConfigParser.py delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/broker.py delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/getObjects.py delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/loglines.cfg delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/redisqueue.py delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/solrFields.py delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/solr_worker.py delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/supervisor_startup.sh delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/supervisord.conf delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_articlelogger.conf delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_auditlogger.conf delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/workers_available/process_redis.conf delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/workers_available/process_solr.conf delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_broker.conf delete mode 100644 docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_solr.conf rename docs/using_databank_api/{ => lib}/HTTP_request.py (93%) create mode 100644 docs/using_databank_api/lib/__init__.py rename docs/using_databank_api/{ => lib}/multipart.py (100%) rename docs/using_databank_api/{ => lib}/multipartform.py (65%) delete mode 100644 rdfdatabank/templates/datasetview_version.html delete mode 100644 rdfdatabank/templates/files_unpack2.html delete mode 100644 rdfdatabank/templates/home-dev.html delete mode 100644 rdfdatabank/templates/home-prod.html delete mode 100644 rdfdatabank/templates/itemview_version.html diff --git a/README.txt b/README.txt index 3db4301..f0f52bc 100644 --- a/README.txt +++ b/README.txt @@ -8,7 +8,7 @@ RDF-enhanced storage API, pairtree-backed. Installation and dependancies ============================= -The dependancies are listed in the file docs/Dependancies.pdf +The dependancies are listed in the file docs/Dependancies.txt The installation instructions are available at docs/Databank_VM_Installation.txt For further infromation visit http://www.dataflow.ox.ac.uk/ diff --git a/debian/README b/debian/README index 433bddc..96a2f8c 100644 --- a/debian/README +++ b/debian/README @@ -3,4 +3,4 @@ The Debian Package databank Comments regarding the Package - -- Anusha Ranganathan Fri, 09 Mar 2012 17:08:50 +0000 + -- Anusha Ranganathan Mon, 09 Apr 2012 17:08:50 +0000 diff --git a/debian/changelog b/debian/changelog index 8e38f94..e8d7e6d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +databank (0.3rc1) unstable; urgency=low + + * Basic support for sword deposit + * Databank search interface enhanced + * Added function to PUT a zipfile and unpack it + * content negotiation also on error messages + * Added message workers for data indexing + + -- Anusha Ranganathan Mon, 09 Apr 2012 17:08:50 +0000 + + databank (0.2) unstable; urgency=low * Added message workers diff --git a/debian/config b/debian/config index 0bdeff2..f97b176 100644 --- a/debian/config +++ b/debian/config @@ -28,10 +28,10 @@ db_go #db_go # Password? -#db_input critical databank/password || true -#db_go +db_input critical databank/password || true +db_go # Note on Password -db_input critical databank/passwdnote || true -db_go +#db_input critical databank/passwdnote || true +#db_go diff --git a/debian/control b/debian/control index 44ee2a6..35ca1c6 100644 --- a/debian/control +++ b/debian/control @@ -29,8 +29,8 @@ Depends: python, libapache2-mod-wsgi, redis-server, supervisor, - debconf, - openjdk-6-jre + openjdk-6-jre, + debconf Recommends: solr-tomcat Description: RDF-enhanced, pairtree-backed storage API Databank is a simple, RDF-enhanced storage API which is backed by pairtree, diff --git a/debian/copyright b/debian/copyright index b0264d8..896670a 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,6 +1,6 @@ This work was packaged for Debian by: - Anusha Ranganathan on Fri, 09 Mar 2012 17:08:50 +0000 + Anusha Ranganathan on Mon, 09 Apr 2012 17:08:50 +0000 It was downloaded from: diff --git a/debian/databank.install b/debian/databank.install index 7096838..0187a8e 100644 --- a/debian/databank.install +++ b/debian/databank.install @@ -10,3 +10,6 @@ rdfdatabank/ /var/lib/databank/ rdfdatabank.egg-info/ /var/lib/databank test.ini /var/lib/databank/ who.ini /var/lib/databank/ +sss.conf.json /var/lib/databank/ +add_user.py /var/lib/databank/ +persisted_state.json /var/lib/databank/ \ No newline at end of file diff --git a/debian/docs b/debian/docs index eb96eff..6bfb954 100644 --- a/debian/docs +++ b/debian/docs @@ -3,5 +3,5 @@ README.txt requirements.txt docs/assigning_dois docs/Databank_VM_Installation.txt -docs/Dependencies.pdf +docs/Dependencies.txt docs/using_databank_api diff --git a/debian/postinst b/debian/postinst index 187b6b0..9e89a35 100644 --- a/debian/postinst +++ b/debian/postinst @@ -22,8 +22,8 @@ local dbstore="$RET" db_get databank/uri local dburi="$RET" -#db_get databank/password -#local dbpasswd="$RET" +db_get databank/password +local dbpasswd="$RET" #Modify the ini files CONFIG_FILE1=/etc/default/databank/production.ini @@ -51,9 +51,15 @@ TARGET_KEY=granary.uri_root sed -i "s,\($TARGET_KEY *= *\).*,\1$dburi," $CONFIG_FILE1 sed -i "s,\($TARGET_KEY *= *\).*,\1$dburi," $CONFIG_FILE2 -#Copy htpasswd file +#Add the user password #htpasswd -b -c /var/lib/databank/passwd admin $dbpasswd -cp /var/lib/databank/passwd-default /var/lib/databank/passwd +#cp /var/lib/databank/passwd-default /var/lib/databank/passwd +cd /var/lib/databank +if ! [ -f /var/lib/databank/passwd ] +then +touch /var/lib/databank/passwd +fi +python add_user.py admin $dbpasswd #Link config files ln -sf /etc/default/databank/production.ini /var/lib/databank/production.ini @@ -132,4 +138,17 @@ a2ensite databank_wsgi invoke-rc.d apache2 reload invoke-rc.d apache2 start +echo =========================================================== +echo Databank has been successfully installed +echo +echo Your Databank instance is available at http://localhost +echo Databank\'s home directory is /var/lib/databank +echo Data is stored under $dbstore +echo +echo To get started, visit the Databank homepage at http://localhost +echo +echo This paackage is brought to you by the Dataflow Team +echo http://dataflow.ox.ac.uk +echo =========================================================== + db_stop diff --git a/development.ini b/development.ini index c8ad8bb..7dcf5d3 100644 --- a/development.ini +++ b/development.ini @@ -1,3 +1,23 @@ +# Copyright (c) 2012 University of Oxford +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, --INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # rdfdatabank - Pylons development environment configuration # @@ -8,7 +28,7 @@ debug = true # Uncomment and replace with the address which should receive any error reports #email_to = you@yourdomain.com smtp_server = localhost -error_email_from = paste@localhost +error_email_from = paste@databank [server:main] use = egg:Paste#http @@ -28,14 +48,13 @@ sqlalchemy.url = mysql://databanksqladmin:d6sqL4dm;n@localhost:3306/databankauth sqlalchemy.pool_recycle = 3600 cache_dir = /var/cache/databank -beaker.session.key = localdatabank +beaker.session.key = rdfdatabank beaker.session.secret = somesecret -who.config_file = %(here)s/who.ini +who.config_file = /var/lib/databank/who.ini who.log_level = info -#who.log_file = /var/log/databank/who.log who.log_file = stdout -#who.log_file = %(here)s/logs/who.log +#who.log_file = /var/log/databank/who.log redis.host = localhost @@ -54,14 +73,19 @@ doi.count = /var/lib/databank/rdfdatabank/config/doi_count broadcast.to = redis broadcast.queue = silochanges +metadata.embargoed = False + solr.host = http://localhost:8080/solr naming_rule = [^0-9a-zA-Z_\-\:] +naming_rule_humanized = Numbers, alphabets and -: formats_served = text/html,text/xhtml,text/plain,application/json,application/rdf+xml,text/xml,text/rdf+n3,application/x-turtle,text/rdf+ntriples,text/rdf+nt publisher = Bodleian Libraries, University of Oxford rights = http://ora.ouls.ox.ac.uk/objects/uuid%3A1d00eebb-8fed-46ad-8e38-45dbdb4b224c license = CC0 1.0 Universal (CC0 1.0). See http://creativecommons.org/publicdomain/zero/1.0/legalcode #license = Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. See http://creativecommons.org/licenses/by-nc-sa/3.0/ +api.version = 0.3 + # If you'd like to fine-tune the individual locations of the cache data dirs # for the Cache data, or the Session saves, un-comment the desired settings # here: @@ -109,8 +133,6 @@ class = FileHandler level = INFO formatter = generic args = ('/var/log/databank/databank.log', 'w') -#args = ('/opt/RDFDatabank/logs/databank.log', 'w') -#args = ('%(here)s/logs/databank.log', 'w') [formatter_generic] format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s diff --git a/docs/Dependencies.pdf b/docs/Dependencies.pdf deleted file mode 100644 index e8cabba6981a8e553b7c1f756434de53795fbb92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46907 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μSKO= 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 diff --git a/docs/Dependencies.txt b/docs/Dependencies.txt new file mode 100644 index 0000000..3aec7c5 --- /dev/null +++ b/docs/Dependencies.txt @@ -0,0 +1,49 @@ +Databank is a web-based application for storing, curating and publishing data-packages, and is written using python and the pylons web framework. Its default deployment includes a message queue providing databank notifications to listener services. This message queue is handled using `Redis `_ and `Supervisor `_ to maintain the listener services. The search interface in Databank is powered by `Apache SOLR `_. + ++--------------------------------+-----------+ +| Package name | Version | ++================================+===========+ +| python | >=2.6 | ++--------------------------------+-----------+ +| python-pylons | >=0.9.7 | ++--------------------------------+-----------+ +| python-repoze.who | =2.0a4 | ++--------------------------------+-----------+ +| python-repoze.who-friendlyform | =1.0.8 | ++--------------------------------+-----------+ +| python-rdflib | =2.4.2 | ++--------------------------------+-----------+ +| python-dateutil | >=1.4.1-4 | ++--------------------------------+-----------+ +| python-libxml2 | >=2.7.8 | ++--------------------------------+-----------+ +| python-libxslt1 | >=1.1.26-7| ++--------------------------------+-----------+ +| python-pairtree | >=0.7.1 | ++--------------------------------+-----------+ +| python-recordsilo | >=0.4.14 | ++--------------------------------+-----------+ +| python-solrpy | >=0.9.5 | ++--------------------------------+-----------+ +| python-redis | >=2.4.5-1 | ++--------------------------------+-----------+ +| unzip | >=6.0 | ++--------------------------------+-----------+ +| apache2 | >=2.2.20 | ++--------------------------------+-----------+ +| apache2-utils | >=2.2.20 | ++--------------------------------+-----------+ +| libapache2-mod-wsgi | >=3.3 | ++--------------------------------+-----------+ +| redis-server | >=2.2.11 | ++--------------------------------+-----------+ +| supervisor | >=3.0 | ++--------------------------------+-----------+ +| openjdk-6-jre | >=6b23 | ++--------------------------------+-----------+ +| solr-tomcat | >=1.4.1 | ++--------------------------------+-----------+ +| Simple Sword Server * | 2.0 | ++--------------------------------+-----------+ + +\* Availabale from http://sword-app.svn.sourceforge.net/viewvc/sword-app/sss/branches/sss-2/ diff --git a/docs/accessLogWithheaderInfo_2011_03_16.csv b/docs/accessLogWithheaderInfo_2011_03_16.csv deleted file mode 100644 index aea9df55f3cf5889d3297ddc31a4df48ea1b6b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51108 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%0Awesn>KtjPIGHzjs9MTg^B0w4Nf3^TTM40##M54c zxiV`Z388)tQ3@AM2z%WHwCECNG3m&6r)4O+&-Q@yI-)OLDqGp&`h|fLZ3~@65v`Ds zhHn?(GwT=cpmSw|aqgh@5Z3Eu++~zu<53jV3}+#6b6yt_vdyv@(V5Lt8qw@hsdZUq z(f#$2Tkp-HRitQl2D&otVPsgnzp@IejLo6u?^VdO^UV9{DeG>3$j=~L&bZOD>KY9R zSB{Mv6+XYBB(}Z7?C0&O9E_epPWuG%SJ4yhUypZKyd$`Dp2Q(|uas*wOOy20Gfyju z;NtHgS}i3V=cfZhPjOERHSM2lk9W-a=MntqMHe^<{?q$8d`H`F|M?Ld9IbyF!4C&; zKsnftl^yT|X$VZ+&BPUZMzw~sn>qLZ0#h=!1J10LhC^Ty#xCX{8zYQ~AI^kAFbQCo z1mH{pl1vCmCVn6)4Tc5yAuuU>;4%_xdrL-`wza*uy^HlB0Rl`8oLyWct&E)+`4AA8 zqVYilfkZ+8W;0hS7e+k@0)=J-7NZ#XQT&WZqyW~T(HKS)@Pae~s9NwD)&VpmnxFBI zAM`;7IZX6F`Gv_z(r;fYk)>!3@AKNJj%&VR=Cf zK;}cnql6$MK*#X&WBo%qsKsFsuv!2@As`Wy4od#n2k9UUbcf{ypMznrjt-we4g-8( zB>@bF3BfR^8R%mjFE1m=gFyfAK@Cty-XE0+20+P&jKKXkyhkZPiC6+ykfR8g1k4*N z<1jr|2ACAg3}67|VUr#u11VqxtQ;^E$O+0lG6t*)hdKj3sPADS6d#}f>PH;Z9~1=A zkVph01h`m;5y_9i62S+cL!y2Z9@OiQ#wUQp3Pkhq18w=kfdzpa8o=*9wgA}H2lT`? z=7A4N{n`C30eFD5il2OJeS`6zOzjt;pbEbi{xA-<_+j{G|L5Gn@R2nfTE)*kSUEq( z55u59Fbw(zK-UHO{v~r4Q)g>O@HQzv>pAgXVl{n0A4HP;R9L@yaNg_A2=_dmAb3Bofac--U3X{)!5eBRNUSY zxTuL20+Td$lr^`uv~mSa2?7&$F$Is?$M6C`1L_1uco1*^*FXufSP6>e##q>b!%;v2 zcS|fF0Vo6rzijOBBL<~1D}IF2EF6N&KtfQ^zXhj2dQiI~*!pKU#j5eY z1E+w#hid(Ma0=ipSSd$({daKsGgAH>{{IC|!A3l=h(jMN*U#?A8V(tL@ekni7utcP zU}-=Gf5It0_O^|`Q3M`(X!&JcgY zPk{7y$$#D1`+MWj1$&8!8-UvYY7@Z}tj%2XAVdf6lmo*Qc9x4h!V#G5!VgxXu;1VV zaRew8^bcmkh=cQOu-lvf9lPWP`UmoWTU7v!j!uUBr_E4FV_?8>umn^AZ*&1htAm%+ zz!-4xATVpzbTLaG4`*`=2oWzMP%A`0I~@EN1&~NU2k^ekFGzR@gyxCErh?q<^y5+DgdkQO0y1UJbhSyC1^8v+7~q97_*5PLyT zQ7nLpir8o>7C=xD^iyo0bVMxJ{^!o@zBlj9%Ofag_#1xi_rWH6cIMvu&bf2nop~Ru zf99bYmYSB}pFjV!SVHiRRYPVCdSrbA%f0P_&gx4Qyaov)Td10Rpvt+h?;RP4{@}e5ex4!p-#ZseYt>|qxP}a2TL?}%@Gel|GeCy)p zEtWnR12eKRtd3GwNp7}xiX+$Mca^&RrH(9jsef2mcCn|l)Z;C&_RGr3bU5wK@UVW~ zQh$<_elOcqQfT-3Tz2miyDP_DRu~?Znv>(6ne;PA% zYn`E;F!b@vMkkIe3FGEjdvi_8o=^*W>D?9j@&4(Al0MN8rR9ku)2_5wg44FfM8;SL zd;QkF-m;S1@UT8EzdOm=*XQYObtYH`xqQ~BNT<{4j7o}%N{WrLUNk5xJZzZTH`(n= zvZhXQGXfLbZ?2@=PlCw z0B^yNwt?=Fe1AcbH7+qSJZyx^Hx=kwlLI91yIE5wVT^wF6u+auUtH9~np5EN!M7=8 z{ybX(KJLMH!=)AZGCVA~eV-xeS)(&EtOQ`q9G*6?f4Vio=5UORPIox^Wc9I*>X$WW zAW$N$!~8x^j^E+P7#v}ZDDe9yB{>}B<>mJBXv9dqBWtK*3ZXdZV}ZZgO4(=Zx&GXU zo?*%COQsYTm6WC!05}s96Zz*NtoWs*B3DU%N`$*4!m9j@Fx;-(o?+Hx#9WcPC-;Cg z!{_t*$c4!c{yt`Avsu%J4YT$yp5*oUORY8=K3wD}DYW|BMJW-b{;5Uo(gL^JA7L%< zx${yY9Bu+}upcu8`{LA{fCL{X& zZfpM>Z;AAM9=xghCQos`BhNLNeqzV}1i#5s?8W7z=95L|FGn2 zZ|+n+isW3+WY9oL1SaBlc}mB3OFhA54J@-|0ld#8XR^Vkf=W399dE7OtVQ`lfLFC_dj39OkCMmn$|Q#fw&I;w91O>OPH8qWZCJnn7f+j+%+5S z`k2IZL?ky))A9Ap#PwQ2NzXP!fwt)wIOCn0*`e%$NuFLAu`$2KF?X71fi*wod>Ivf;o_08< z7to(0S$qHs7g~psprrvxvAR6d8yHdp0SN*dm?>m>XgQzh9U_Y4JNwIQrl06$`W(j8 zn`H6sFF48zrYIJ@M00W7iSfj<2sq49iodOAc@wsxm$Y(SZGVN0rN7}=Ag(=;Qe2dg zg=MR!$Xn|8=T@hDv6W@7`I@(gW2Ddg<4#A-4TD5lY`$hA5EMbDIm&8Xf7h4)RXMA|TW4D|VG& z5m|)AxcT}uwsPy&fnIKbq<|kzx*`p(Ua@vfmlvs%im*D+tWvQ^9c9aO<-*>Ry`Efa zw$EE$>h@W)%knF;d?izk-6c3gj`>$vobA-c*>xFdhhyQ8R@Q~Ta)%uFte)i!_<~+i zw7zJ6jiK~2L}}T|`gMdDtyLpf$u@O97i=T5$~+@}ip@Z^e8bCp?j=|5BB1=?cq;<%E(-fV5r@9iS4^Z)XpIGV@!Zc!dR$p5} zL}lV}Y{V5_Z$x)%ge$k$<8u|+{HU?fzw_N#6}yUrAJJa}B{}-5+moA9>WjFPyms!h zVJgMQ5&b%g#T~j>{4nisoHw&^+ss=Uaj$h3QDooW%zR%*>$Ny9eE$(?=QEQy%Kqnt zvB)U5FqGPcDA1*6@;OS{3j&HXBa2>9m;zt-5oRk zdJjm7JV-O$*^rI#dfga9fVP7a`0=m!Oqab}-(+FB^Bh7M^@AY_v~$BJRdQiU=2?r0 zDdv&GX(0=z5S^iSz|gl7A#Dt(XJ~P_*~0V=LP^gwL;)e)vqT^yO?j#c@KSZvSE=<@ zSAE^pRo_6>m$>5=T=fcf$kf`1QR{3SDc&Bst85M}OCG?Il2CrU+!UoTLs2WOTtqku z7N!pz<|vJP0*cIIcQV2FQ_DbQbHHN@NnF=n#Zg|FY>IN1k?aIeAg*gCbCkyA0*Yi8 zi(Xv$j26N!*E72u;wWEV8*U=5sX1hqqvtEu9SL!L@c^pVTwHIfp%K?aQCzQ?8*V19 z_pw?2DA;P`w9W;ifIgPQ_01KkxNZkh#SxI2%f=X`8{=4@jV5tjk3^IrVB!tomTedy zy`)rsL#mrlj;N&xK2weYab4CZnCk2Ar~bQXKjo~nMx_~Eg&8V#lB4r}X7OKi79S0Z z|3oVL+56m1Cmsy9bVtfhFDdPBxBmf#Qo|4hDjVNHP}zTKjjD6WnOLr#{GKX#VDcit z1JX5_n#UqFQWvQ|P3!C#LW|PZp5z{w@^H8X&R{PoQrD;Evq-(&5Cx0U3wKr!sZ}RX zZ^Z;n0`)-_Vn1m^%rnIL;=$V}Q2*DPo2g4uLrV+f;Plc5YOQ+v7ZFODc#8`J6F@x9M)1oyhGQnw! zblRe#vz#$W&V;1sID1T7e0*YT#HILgpwq-jpUHC-mAdhs_yY+n(&mh`MFPy36dj!u z8Etn)$2p@p7_FoYJ`fqlJ`kCN&qPMrqn*+5v2o&;IN2IJMmKI}G>tnlDl0M)AH#q0 zM`HCKi8|>=;!gb|@w$&Bzy?nIm*tF4ij7Z-jIz@`{3zX&SnE!XtE8_7Jq+mK>ErR4 z;6%qK#YEa;oX*(9czK@DCZCLnPIAWB6XIjyV-w_0<{Ex0O@Ky^h=@+K$Hzs-Mkgwt zrG}zXUykHRC5&Q|q7sv06VOHz8JQTxK8J>wB2Q_7ewh3tFC~|J`5Toql zTFNeo1Z6Lv%=hC79OaWVVJtGrVutdAAqq0zk4FTEKV3kPW@OQ4zATeFxBxRkiydav znWJ1ew4q7nyK@=YWz@%tT}D|l+ZXr`Kx$Z7sV;65sm+8>^`-ZNWu<*18k%LkkFr@F z5N0_ld2XH7KtD*C?`Qqh%r|AE*-Upn!N#~>H^zfNYeSjuuE0z`07@jXIeO{yiI9k$ zPZG+=BZer*eEV#~hlUKJdosE_>vY_n3EnOU-a!EGs|rXhSV`96vLe4{lFR3JCIg=&6XOE6H11d2hxQC!vX~vT>l+H2KSei8VRRTveHYoKR!8-~^c&ma)q~$Mkj2ZC_BHPnW^>cW@^x28szY ztYEHG+uE5DmFF{8!U+#$R~cp?ldLc|$rH>Z`?bu#Omc{sxNi-RDMM_etBkE6E3cQZH@& z3PnKko=OCWD9Bf`W>rvyIvq)4C3lhs?$u z8je}O+4#7KB6Io+jMG2Ya(Yw;aQZ+>jjvhBQF1p6W06r_WGFgL51=45z6J>>&1i#& zBF#ujjroiQVn!V^8(~Jbag@osYn!CT!|Y_2&$AR69)r~Qq2JJB$5Z3!V>PL zw=3Lq8`{fkmLCbW8q;{}n1(=KNU3r6ht$+KuA#6)N}A~~2ODF)Zj1|ob`GV+U9RFY z{R}9ZFm8J3t0tB;!y*agv+af`NR89Wt7M-Z8Tu#DJaRapNP&!ar_Rvlba?3ZE|h4b z2Uc1a+u$y&BIu=0G(x)Xf0a-&J}^Wk$GuVX* zODc(<9Ij3lu5N9h{obYV*s)D0KkkT5B0~AhX^IlXP;w1X8Uy7{j`D+uBFDySEH-v% zy*joDVxub&R@$2!B`!%Ai;VKR(WM+f0b!*fc4$Tqi71j?Ec&%Pqnh8l!Y)mjUGCs0 zUHjEBA*{RHWS4u|Ds~wQ!n!ja+Z#Dyr4H5*)>?X>?f|`p@r}N{w%J;K1DoY$!B%5? zZg2Am&>tbf3K_wX3285oDvp4=SVze{YDWnl<0C-(lnCqhXp4nVwl1t~vX;LqpJsaZ z0^LkG3JB{fEHL<{9DV7kYAlhMoiIbiPI6prWEOv4XYo%v+?kL{%+(T{9PUvskdn(HGqP(y!*-uBDLxSY9S_Q5~!d_NbDAEh_&5@K*a@p;z;v7 z+)U@4U&pNX=`BJ@J!pu6KwWf)5U7<{%U3=!|4L~*u$HgxeX8z#s_uQN?tMC4y-%b` z+dBx^rmRU5S%%kLrzW5F+#c~P^*-%;kCW|w5k<}|unGiazo#YJh-X3B|D(+JT$EdB zEQ7iTW06tbW+?9(q9F5a{2NDEETTv=vgk8kuCo8bjGm+3r+vs!Xe@`~%`)GZII_zh z0~NcBvt)L9e>PSVJo7!^6f@svaQ{usd|M=&F4Z@)S#A(!IWFyh^$DQgO_}e~6gBhp z0!a}{X{IspY>et%aX!Yof%YV2zDrv3nTDpAE!ATZ2<7*8bTj2B$b4UIQYDw_p`L=jTEmQTZ)(|42Gf zeUMu9L2CSvw(5h_=)|_*L2ASu*`o#Skf}A1QR}5zQk>I0?LfzIv~}#RE}T0)$~8qv zVkqMbQLv@%uFf2#p<6(ac?|ntAg&v=4AgNPc+5uP`V#8oG^0iyQAQX5#7!A-lYPwPKe`A+Ei)KN}R+2bXBX6>T4? zxHg<_Dy|=~S-vdT>e5c>0}lh8ojWt2r7Es2ASvo0&D2$cjZxiV#K-s?(2kI}_WhC1 z^e3P|BG^l+gRgUi63W(JbTj2B5Z7XSQd3qc^`lAa-#+vuxS@{Xp}`EnN^)%OVD^4Z zXYV7OdVPSFA?z^f!L9Vv&2=o@PztA)R1R;m|6@YQc-s&K8rui4tCYk4;i3|E$Vn^T z!A7-HIQ`}1_u0w*t!@$QFGp!j7Nu%2h(+lKgFB@U`kG2g>4A!Rm*(yCKXx&YHtE@e4Lu^SKs`ieHZ27QenW!>qQ1*q?#nsqJv zuu`FyK1geQx_=j;q}HtnCH0^Xq*bM$@1j)?zAPT3`ZN$ zzPZ50IQpr+i)31ayExnB%lA(3l;nBw3zge#H$z3G?RGMXy8ll2RoaFn|EjpXk8gZ3 z*pWvlG^NTwRIo=+7>K$_&vZBjyY?gy+O}s7A~&o^AheP1Z-da*K2wm2_xfoD#2P)M z&3=_e*6#k(Ad>@W`(LH8wEF=iEZ+HYQZ(Zof z5VB8Y%oAxd+E*BykZxn4`FJYaX-H_&Rzq_v#X$PKha4-orAfD zZOEmcmH9jqvT>9?y%{(Sors;Lp*b^O-Y!RaHT+VZ9vpnY( zU52u^Q+gK8YqKrt+>qxv#q~^4>M)d>4N)2cC7h$o5>e!I;!~DRyrd0>tPc?m-_m+) zG+IPxMmgcaSY(v{F_hJYC|Hk;M$DEqcjFS}K@iE>5v_x8u?M9ME_8Q&3uE|Evt(^(QrJj@~qF_BX z05`$^yBj^pekHJ<;srTszhwS=PUp|WPEY5sW6FL-a|)rfil}R{ooj0s=7qglU*_D- zdPyo#vdG^~TG`bJN3!tXGj$z|}35z{wybb8v2hO-k#e(A@Z zu*7G|3>Pvde64kYyD4)eobXuFD#Hw9l9iZ@iAm6?g1W;BEi*8a+)F0;c`Y|dhYRYN zZS>sBn89y|0%jPoL0|@92czkUj=23)Nj~^1-7II*Mo)5Mi*CYM!7{ycXY?{r7nAqK zt!*}uHhO-Dnm3_1L=;&$zh%MjwAPKyCgS?IkFv&}W^*-CMAiG}BdE*cji`jnNOZ zV#*pn@5yKSE>J42;;-7uP}C*~K2wf@e5F=@!}@3y+2%=B`dqY<994&yy&u!rySQub zkcLE5C$N!~P~5}onN{%*6H11d2$9z~3W#bK1oZD!@heGL;?eDaZry*gicgl?0?R2v zAxG)^EWS2sqco)9@HHb`l)!v~cqf!EN7pl{;;-7qP%bn?fp*SmW*DWXA$vIuTRdrc z$1y#{NOF)KVL|$+Hb_Uf5Tr|)n*PX*G;LEovnu{kLg{_9A{4tr2-3<`@hcgXe?>@x zTRdYEvG*dFBmP5MJgcktRI9={e>j)V_@upH^-igB(ouV+1-$AizItSzsiDOC1OLq` zeio{>>LW@|8dw!>dZi%!58M$T{kRs){~9Xz^pdLhEBAlT(i8Eysz^`9HDmgL^yHeU zsN$dG`c=>TJo$Zv>N^5|S{P3U`ffHw z`GBFUGep51f!FGBl+hxJoSGbCsmT&;QgP`62(8CxZFh7vM~T}ej73KIfuSrmM8Vqb z=n9T9OGJ_EV$rYd*jgpzG1%onW|z7gW!Y}CwcY4LWS5WC?x)MJwtMM7S6o=^j=;=& zG;6yz>3!PxM}GUDewf)EfuGqd?-6Es*|1%mW&yn$t?fGhqOR?14a}aMGWswZ<5IS zqVLxk`dS$J70Q=;b>QZy;e@-um=)|)K0zoMcNwC9H9crBQWkYpCSU&NcPf)V%3(=m z{UTkMqmQycdqfv#uMFGO`FdL9osabmq0EalMfskgJZy-9oyzB95l$$JMHD$UaN7;B zaj({^ov%l1yh?=C6Q>FhN>rjS78wQmF@U1GlmjRrte(v|%GDx@WEYE`u=r*CD(o_s z*#*T38q486W{*H}*C4yRH&d~T3xu_ND;n20Vcm;3R?n(kwVB=z64v`ZGr~H6-^46$ z6Kv&jj<3-J=-Oy1btPZ7uy`-7CL)jSBJ;r>D?*T2D2y1o?KGRo$vK8M-FNv_$ zxmnBKyK1wZh(b5d8W=9~t57j&yJ#gTst$mQVDE)Gdnb2Y{ysY~@}Y~kl~yheGbu(L zfGxpWiwse~TQffsc_{9ovz2mOT$cx zQSRD=^6pQDC@4nRb{a-$)hR}G#Pk$0mxDBv1?d89c!frGUB1mi;`-oA+(?s~)Hf+c z9jHkty~VR>KrJfD%pZjytuo?T-BKz%(m|*JRi+=*Y5b4}LZLRT%0N^XqbleSrrt`! z$43Z0a@ts3rMjiG;{NLDmeP|npr5?-L-KePn7`td(gU?vdXlBpkGfwo{h(sh;OdrA z$KPowB^Sgs6`r^$XXABPo})H{vOId5#W_9aR-*d>D51uK3U%Mj6-x|ybowav>rQz zkJ3zCF=mgX-P4ay2COke!FsG7?kHB#0#X?!rkF<#CoCkf5W7KV=%TK}vd~s{;z+$f zS3qHAeUtt32f_&@O*}A<+{IDAbf05kt`v|?Y5)A0zwcVTf4+MEeD(f$+Bcu=75C2* zDSnHqUf~XzTKh9<9i%12EJyh4UTtWf_*dziT4RQrqFl^S)I(U9hy+lufBvg9jxt0< zk$J2kurv5xrid!#iAEiKBGw3 zr7g2dDo1JMHWSyS%(^!wD%Q<`xXwBE@u0YliPDJcZc$th++r%OP1r225^R;zsa@M` zKwn1Un$SWO*Nj^Qdr320%6xaD>N`HhWkB0b;u?LN&-7cM;DCb)9`w0%07bwJD|9pE zC=k~neq9+!d)xec8k=({nAhH*%tQOfmL(;QGXJ%Ln{KZAq%;9MR`=?tYY!1iB=yZppPgWo6sD4?4 z23no=Nb4}a&y(YKI5GxDDEr&W%ggQM(b(OV@5mbJm_jH{`dHwvwo>*Pd#*n>0))xF zWJ+;SNoh)OgPZ{1OiWDVpNp{Km#Rg!T4aqy_F-K06^rcBfkcisUaTd@CK;XDwVy>| z(gmqCG0=t;rYM6LN`FHXh-??!M<$e=B8tpo%^8o))bd#SS>Un0B(ekMa+EdC3S*H` zATMA;o%{q)AhH8ya+F5T2`G~ENFvLmr%7Mf1&sli(a#*^gY{-2d+1rROZpbYF1Zld zh_S;-Olbw%_-l>G?xFXCcN8x=Vk)w&*(}QiTje&Ip8pWgN07*_c}Nx6#Xzb!0uDXL z#`vXfj3a=ym_+sk9M(?0OFe3~f<3f~p$s-efyizvud*xH5tx`_9yy%aFhgIVGxTB@ z`a2TWZSQdNOb>5hwt{U-C~2DvQ6R35BbTjS!B&fFfzO?n65(+Bd|sb}9k}MmE^_4* z+H*=vBdqis*A(33nc{b_e;2!RJ+71p?AUj^OCq=cwzt`=eO;5iK9ApR?VsZc zP=+E;Nukx}F2X}g@n(co^G%-Od`F&ZGX2Dk{|SDRr`VP6c1$YC4`5fH0HZ0y zaEBx!hn{DoxLZex-!+$(uNL#GPx3@&ZHo+zrEb*KkN5!WU-)F27}rkB3W*V6q! z2R2KuU@P~8a%&@?-%jG%4+}0rCVQ0vsp1Im&17S2t{da+Kx<6mnvRBILaE!Ofys#j zzN-o4wbq6x5Z9+~Mvu>b_R-R0zjm;n;srTsJ2HRzbpCAIwf0-{NyEqQ;9l4O6xw1) zFR5v2x$he0g?U;pyfvTs5?(mxSe4pWyv^Js7ci4tE}LXiGiH*^KwzdeFgbDHKqo@U z5R)UiP+(Y~Agy`f5h1PlhdZQ#r-c1G$L>*3UIE)FK`D`-Zx*8lwP~2q*QRC@%G=kW z9;sdzau4`28kn3o;JcOuWh-q^22ju=H3?-rV`?}Jb**%7iQiq~w*?O_tZEOPCnwwh z^C?b{nW3{0)3>kFwf5U=*XlSIcS3kyQ)al1IpGGa6W(sfTnQ)Cw^b=-I1iICF-aF@ zk`gU5Fq14KW*EDRn`A}naFY`UsLdbD5M_u0W>}2_kdy^a^@#%sU@4C)36(>q)v#rO zp0z8Oi6VQ6HC%P0OfRz;y)@Fr#+OAD`TFR_f}u$3#)vdrA9qmJ zIOai)GN_|478wOphODvB5CvJ|m^(PieIkl9Ba1$3WQ6(l9hgx%vc}AWz&`wAQQ;<8 z_CcF9B5Skht}Nj_zb!$UM#;~(^Xup~2We7ITG=wP$V5oVd!w^NT5K;KST z<8jmgf?4AhASsuiG}Fa4Hb#$bjN5^>lCs7lXuYQhD4Y;(`3mEsmz1x3xY$l8H>*tr ze5M=)`ATHE?!HG*F?CN;KMg|hH#T?sa`P@keVgK+raTi zi2>h{G_+6OFe}}VC@D?Czf(E~j`q{vxrmH%L`B)~8@AG^C4ScwTS;k$&dMiqbNp^! zajEj@NoBqwcH1O3$H9K$P=D7uC0G5$$v8G9+wPrWcjeg23R(9Tc2+w|a|+zWE_^{x zd_^*SBB>8{77la!tu$y?wztf$++;E2U-=Y5?Oj6Lu(9G#a$w|1D9O0|USCgFZn38% z*`a@%|1uj$;J{jU?(h=7r>G}3i{s$QC^{0;8I=@8hwRwnobiz{(a8>@-xrW_%6vYg zVJv;Eceb3_w^OeYXwA3ZOyxupx7-vZlA+{jc|3s97$|69 zBT^eKqR6C%6dvlCt0lEwB_Oq{NrUTN&QWSTD~v@(i8fNF017m?ZUIM`D56MqvFJ6J z+vRH5#mnr1GXHwasQV0yi3X3#BfIQsqu3=M8oc*VD#;jW@Qg#E20xD+oog^5&v}ej zZ7QhT#IsqB6>ODX>(V|2Ku;qL9+AP33F%WHRU84M^4S<2x-q5!%|jYIv;&{%EObn4 z!uaSVY4Dm+1%$HmUPBaUa51WGRj{#-%yTa$rkF<#rvzr`@j63$U}zksdg4g2mz(E1 zw6s*bGxPvD6R=7cZHNM;y)(B8Dy{RM-x*5&xC}R%6n{t;<|q#fSDP--KCE?V1`ere zWgVQ%{c*z`6cAQXHb>bZqDXeJ=n0F@=p)z#M2;C@tYqEL-DZRpzmM#4;x5Iy z1t6?1uHHb`JQ3DDkA|?2WvYaA!PlmQg=H9KIZUusK}7FvJ%GNE2!*fyQ=*t~tzSTIU;!B?XHddg%!(#1VghP<~lrhyud;5Ty*`deZ4%H3YNS zV0kGTtK{H&lzAjsi_41qo=GmB-;w9_727B!>0w1OSCZ@UO-)gcf6XfBUpfK*`TMyi z;Kze=T|-At=olV$it7?>V-|%?YZy~;i5$YcnR7?zoSWSBi)-E`lKkjR?vgiwG7jFL zm)<3o!SM%~V`phya?QKUv2aP^6P2kh*=*rqG~y4;M+^-{I1V=$@%L=R5AhLij}9>_ z{-hB~Mk_-U(0a_n8d`T+(SREP&dX`frbKA^R1Huy4UWK5R=Fe}^iCzLdC0~9%u zqkwhZTdiT8>atCB*{0--mTeNEV-g}`%*r;wvXD@@s9bR)SjE!Sc1%k?!7pQ_sncD= zNr;Y(ipJOLz9dk@VTCKPtWczM_Jn_)P%5XZOJaR z)cSiN2B*GdFTBduw8r-1%&l7=2k)3<}}>i z4HjjBg_^3?2Si?&2Ky;qkYj%o^Jh<;KOgLR@V<+Q7mM!UUTD=b)TBeuW@TPDqV?r{ z7c*bN3vHjTOr=IGa-G3v5|K$dV=^Wt8O=MltP#@}F6?^n{3k1a)die3F(K$RrP3LMHJ9$~BjCtZ7yxzLZe<{9%X! zW_SawWkQ!trHjO|m3v0nUwM?m*;XV@>{?TGqf9Ry8NH|vD`Uj)z$H;LindaRVBZ=% zvWJK$^7S#E1w(??jYV4#3_}qNhYPYf%7N~}SY(t53?<$W1zBSO#E7V_hfP3{W@OQ4 zjeJH!F(XJ8W`q?Dp}2e0G|3u&e3$If<9X#;Ekf2fyZ7Ui9nv!Q!bdb&qnq9jmYVP(Y(AmidHH*}&aZqownf~}58{;P37?%MpiLyqT9?kR%pnQe# z(M!6s^x==28A@wI6yz(tZaoW2&BsN<$$^&3Tp;!(lM9l%&Q2Xk+|_zIH{2uBYMGUq z;dGRm#pkK1DB!N!AQ}R9Ri@N@25GChL$E4!2(nt}U#Z*viOdq#+~X@;h0LKj;uE({U<7^ z{t&pgzip-|%2tN*hL(W?C@3}m@CK)&uHHPwO{j9SqM@q6iJJs_Ni#h@k&RJp zmf~Y<0<_;qgP#c0?tTM`1DOZC^coz}{&*pwBu6O`AfiBnKRxyzU!Gn2w%`Og^pP?l z^tL^fMR z{Y1e+*cmR|d}(fyVrG)A1}0g+OfrC*EYnFbqm!;$BIvWg(=xgx53ZIhJ3-=B?9J@Al^@g1PKNKn$zHb=f& z36zREIQTf#vBWmtVQ+Xf1l>#VzCo$1R8*otf@IU?n!=I zMqsm=dS^x8c{*nAFVK8)`~P2u0b+ZZ-{UWGW1|!uA(TFBn6-cLB(Kjeogc(b0V*wU zyZyRTgsRUgLh_UCEz0e|wyx2Bz!}(f#>_(d&kB$Y^$ZJ3<_F=@kCSsfldYcIl!zRh zq~P+DxP5_!H2Psoq;OgB&2SF zpEmsxK^lazA=?yX5JOQ<`4dqZ0|jJBD7!=ynNp`1>1E13Q0gy~Ta0;+qwLKS#v-Fk zWhia61QkF*ZZT#9M~TZ9P$aup^tlC}(J!#eer6YFJI(0#GPB&Gjg#!se5gY2UgQ?` zWiL_=LAk~2fefH#jk;l$8qd$A_k+1b`4y(Q#SAvfX2LAJmp$$-2l{HtE!uWebBi57 zsyG7LM6oftbz@u&v?-KZw5q{pS~RV;Nx`^HG@&$m!4L&PHmd(wSTLT6DJzDP1MN!Y zf|fcLOzCESB9HVmCWafX@#;Ee1>>s-C2fo$3iPySsGz5ndrH%pUoTZ}DW8<&a8#`= z<)^oA*R(tu>@lu%(buSWEN^G8OtCpw5&p|1@4r%CKlzsZlN5}%fdUjFk+h~w3}fIN zEq6YVciH2fSSpN$&*VhX;8jzUScZ~qh=PJ~IEaQ6D^f&}Ne$nHHEVM%9eH9wYWbwW zkx2gu%k|RL6h>{l#9YSc~NiphR}BV^(XJ&BoF|7|Wz-sfDXB({#!Q zZo*h;mW1>;kSdPGC%X`INKlwF7Io}Wk`M?s~2d#qJ z+sQm@FfqkEa%j(ChCWAU=;vW*+QNKf$#QOEYMc!0_~$|sYNf*<#R3SFoZJWR#TKc3`Kns z1SbiOg5v14xQ|3AuG<9^IW~~MgFM5vUM+eFv9W{5bMX@#rTk7)6x7dwqPvs>D4>N?pxVR)vY~zrW^%?b>6)d7DxXB-H_zZB-l^!f*kudGk@06`7;6j z{F8X`?Jv0(Rsw}?wb4ty-M0HS=7kwLU;fE_2`^0hqcZhSwVHPZZ?}<2Hkg~_7G{## zvPs6wW+s6K5=!fD>X`LOqtyyhAqoy%C@?HgAQk7Y6r|!W^+{J!IR;kT^mSI6W= z{O;RXP}VaoN8!x(wdJje2szJfN5`!$RhS zE3{4+dlhpfoKT)nrI=xnxk(l6uK4j zt-uVz5uqo$5mQM%`2XG~O))urU0pMJxr5P*MH`djYI_zm_fVho!xwWm-Y25S*T+H@ z3?W)KHuoSH>L3^nzp;#?-0_Am78&IZhGH>9LDu-jLmcIZh$0cDMV~dYENEOE%xEH( z+?fxfj7xTj{;;melG__Xc3FS5VizB>#=##wNRm%kQg@#I>wectj?x6hhgmS35Mp=lA+ zCROa7Ky616N!F6GqN48Bh(OnFDc+eDp*Z;g$hBNQU=d!YOncBE!}mJ^Q^k4uV- zwZ|vM#l*!%TuM)^FLsr9^4z6_9HBkQbsQb#I!-vtbsV41IGpA>t|WMz>$no!i{uBo z2FkK2Lp0uNz!Nf#I8FzGxP?f0e2Yx+Rls`$GTm-LN89wj{@*ExO z#$4uemwL;5Ic_x!%)^Je?r@y%xCn>dO{aDbfyTm5iWP#0t_J1w*l{J}O6a-^URM() z`P_d0)Jk1mtcg&*y#C^G$uw5&g&90;S-vhitG~>y%HVIBTNR(;R~5Up6R&+`03ziJQ*Q6GBPGMGBJUuEhaKHAsQdY&waV>$@p<3 z|5x!zemlF!n^Q<%n81I(gdU4V==`7go?QGRIslzrR9Nb{g1#L6&2juU__swx#w7B8 z2Y$gB!~cm)%XGA5nlJE_cxfm&EIT@uf4NW_Iv(HBN0bcX>F z<74o9XOV@X0tWoc77AEcZ=oO!+aVukmqijH<0}rD*qF%pKulB^GXaZgEJ8tprvl>W zc^Jcw6cPWv!ZRt)Q{-mX8U1{+$6bz}27hk`5qg&?!gCd*1*5knTSnccT>$O4m`FXd zQAEPU*mA&@73L_l7|N|OiY+^{k!?|8;ATb38Kz^Y%}{PJL}?5ZbcWGbqD2&WiG$^+ zyu`F+L!t)Ia=fT3N9lC6FcujF3qPRzq+KWlP_P^?vT~Gi5k<1DMZX+p3+WvLoa=2l z%r5AdqZvJav)O}9$}`9=Yf==ulwvvFY4hW>qNU~d9g{W7@dNaJa5+Ba71IZsEMc=e zEX=a>lBY`Q0iA7I{%w)E9Df=}%ED5bX?b5Z#!TH9mjNw|mg7I;UO&xr(5vAlcb&^G zB9xb2HblX4ya~D&s_0$k9863xj~q@9Gedu`Gjy1()0PxkcQ<*5o2T>(xU1s3&W{jE zpM!=d$i7luu7d0Cf9bAs?Jos?$l=00o3~?yDSS zyoe&%#iA!HKBJzn%Q?(0sC6>J`q_-Iwhkk^WUEhD@Pn`lJg8uD!ul00F>1@s>hJ0O zAYpa>-ITC!2OhM%SFn};5_^+tfWDaOhcBb@6l{~Z9!Sa+Da~|i78_%lLN$Dhi-9(a z2A8Llh8JEWb}@ z`B}DtiS!8fBipazkzwo9(Clg1PZ3I5q9F%FizW<9iJp%1B zaf!J5S-txtC4!zvUF4!CMB#7Pw7_>iSd;lKlVNTj9w=qapa)%Jd4*GQt9PGRbG$`f zUs8v@eIxNl+(bg#LFkX2c9&SEDceivy*z9kv6Z_$`30wW_la;>g@t7mpe`4v$zhyj z7)A*$x@! zC?gq4FGCbOE&Hhqj#I$5%R8O(wWBdYW z{Yh=NX7ZUH0?H8LQN{J9C8pxKhRt$^V5`Z^uWb7m&`U^MUnp0_^?yLB zI08Dc*5?Ll12rFG3D6!Vaea0;x7U=18(MmyxI{0#xP~}8vDV$N-<0%9M1i>8n~M(( z8Funs7@PAnbi)MC+X*(FRG&>_5x>GlywhOB_p=e#;v@F_+0aso z5Tcj<4snS40P0MrQQm8af+Xa`2SO5ZmNhlngafg-$%Zy~!pC89`nvFMju+%6Bm zE_<0>?&K(|nw?{^+}g)b`dy>gr5uVdGZPmFSA?c0^{a~T5__MPTW?}~4*X71;HAHG zEZq-mV6)sT%(C1vEg}TywMh|LMsQ?8nhTVQBVZqE;Ow_hH^$mPt3ir@g@A=ny5SQ3 z27jlQUJ)!i_SK*Wxab>06p&9Rz*MF=^0WxT-)N7-{o~++=4sL-e~RhkP}|6y@V?Fo zHQ>2FpR*sR4 zHEWOzn9-m|vid>ur{h8MHmClXWfivN*qmw?q3}z*N*8SEIY~F4!7uAu9)r!GC+~PP zZg`B3PDqHZ@cHkofv9qQgnX=(ZJrW-Ti1mppIMM##~@?k5{=s_fn;(r0FgfsR2}S*BgEKC@A~x^+i!GWmX>DGKY+=%@B*aK+&$je#Gw&xdp&F{8p~vpO0jKA+wXD)Gc((t8~Ga7L_e3!|HH?tAHWiaAVY{dC|#5X)1VzxHhLMVN1 zFhoIC@<)s&E2;E@InH2eQt_TuT^IiZ9098@8vNsHGjimgaDn1TnGbrfpc$(Rno+eE z_1jHrkgrZ~M?UkkDM~U!8Dofowb@s{aFn-16!|jPYQ%E=cH=S_O^Q&X8%Me68DT6k z%KHpuqc*4lC{TnN?K#RPB8p@ei+*j!xIA+-?D7S(%g-F8<7;M$uxcCGWx9F{#8fDP z6r)IMTP zcwOg&ESsazqr`%~2HbS*TZNjf&2|t7(AucvHI-$a41r`>ky#5I;?1UAcc4x%|>xmtd9_-T6zkTwx*&fhptoo2K=vpm6ZM!fw z?MzWVVkoa0qF`+{0NaoWrBFnXi4E%stT$fO5?lRdAhxBX#3chb%H0vdSY(u)Mj91B zffARbag=r)1r*6H7QGTPeQLB6c4^M+62(z=C7C^-^=NOhORCylc?Fbs{DA2}C2rMB zqr}Og5`XJ9eL(B~*eq8Gwz^_^uY#UHpTU$EE7aiHEHTe)rbkoR7>6sq<71owv|db! zALTRs7$_CrH#?d}D81EHsE7h3PJXPCYqO;2|Hj(vkmwXSh(BZQeNpG$UbgWAXOqTX zju4^?>c;#~leO8=bmm%{*0lp?GuOf?A51uvwb@f(qtuP)!OWW=+x*cvO0@?KyanReMkGSuu;!@ zX4mq-C#U!FTuG~tOTOiie08zGVP&DZX@oedfn@p8cpa!?+5F3(_S#u1bjdA^GRWr)5b2#Y6J8IqzQ5B zRZZ9gB;{h3X4+~8`L3m^=X{I{fYz2YA?l%ky@(7+01A}&;yN6~mMWk~cCqM{nCa8Q>9EV^%q~B1l$xW=9>Tb1KG|i!4~ku;V|Dhy zI1n^f;yM>-lo-jfs>EH!nLdOOX(~kEVZm0@FZ!g}W}t5)CEkKt5W&@1Igl!jfIT_VjH$;IFuXwGJtFvw~|BcmI1k9;8MGj(= zmEqo{I`?j|eQ@a~r15)Zai?qr$~XiKy`;vX!Fz6H;rF@LDVKi2Tnnf4&p(yb+5gN( ze1whoQF+AUL)eJX9!*(E?v=GH)|xoI1~2{Utme4~juJ}h8bcIhC0+LmS&8QHJ}29^ z_zxr}G1OvM{nV^e+qYQ#)U2wuwIcZV%@S9!+nVDl!M+dnXf3O^q-d(uk8O;3-l8IJ zxu+!Gnp5ENxpMq&AD(e$9XmeKmgurwk!l+=VVrGT(xp}$2xl#Dm0JB?+UHp8^||qR zAUf3#@^r`ev0TI#2f!B!Pf9Yq=Qbu@HMI;kKIEcLTCL7()H-i1ZWj{DC9_OX7BCdG zk(bGI0HrZdu-$-ACWV(kJMf*u6f((X{P0pdY04Wtvc2eiuj;N5C|ec)Xx)%HU%>2(;~# zzLW=w%dSPWET3Y0^pccv^E9TE&reX|NJN2BZbSrBrUm!3WG|;!NYI`zKyg}zxhfWu zBMiwnZ2y1|VPyO5wrke0ryJjfIxC@s;HletLM`m2SL)D@4`5-Ss~@N+R7V}DQEFi; z^uMpv)h7%jDd!4QpD+MT!kL*V5$rn3DJ>1uI7pW5KGZg}hXwq9-ULZk{bXGA3U^4l zGL7l&3##5So?N%U(X>5Ib7?!XXc6a*h3}c7Fui?2)msq-n;?rG5m00vLkkyp z>^?1zwVwqZV~^Or*%3h5Zi@1&krD+^ptm=7;wZ@<2q=nz z_S5&&a>0#2syG4;&17S2t|%oRV@sfQBfb6j2|m;D4Qrc}3l3dPDCrFhQJ}XkzgWp~ zfg|?6Q7)JTb1F`eE`@^#1Y8Q@!=}l--E7B(x2MJTv8%aLeg_Jb3g{&zL4yxn!<=$R z>y+W`nQP&c5$;nd7c@G@bi}whixDr>1tg7_jt4n%Y%Cw~pQCDLaI+F-Mey+&)_14oPee&0-Ry_T(}N8h%mp)_r%8*uK|>bH}-+ zPxL-?Ekik1$95bANyvMxIm%6!31g9&7Yiitm`+&x?gEeXqecJWfE>DVOi@q_1#|vj+aj(y=lkwY1N}ADJ@As6gxmxqMen4UKDn8V z@h#mLUjy25);(|+pJ~S0+LoSB8hYvVE+q2FErfFIYlbM$yN4%NG6|{u-^f97VNJy+ z@|94Jd3T-=!{puN_Rtn@lA;gta-Vz#l!|kZC$}=sF4Fp>#hc8t@X3myr;>vlH6L*p z8}UsBBR!r&)n&))B=nGm*V?Xo}DB>}BvGP4;pHy&o*0?EJ$tduhyOd9^UhnT>L7-vj+S zmc6W2vlqvog1w}fKF!Ks*Q#Y6KF05Wc8p~&ck-ET0LmvAAHDS1i{-tiZ>I>Db*XNq z90f}G9U8nVbIam%Brkvaj>X5K!Q=otmzn-ro#~I+J2acmg!+AMu=JL7%!&m~2qks9 zAqs^0e8|1>G__MY6Zy;wb@d&KzarGt$2L|qq1Iehr{PRw5`;H!)mJRHPcI~zyf#Ej zlg;Kg%5~ykh_*93-^RIPR~u85I~a<^5Cz48&bM-uqaupTV@(;4U87|n=MwPP%_O%M zx92E+t1uQB1zWlx+BzW$pg?XfZpl&Bi71i?Npj0XsM*c1%frkrw{VoH-OZkRzjq$l z<>KRtU9QF*i|a2vLW)Jjg4(zTBNPi}(ECBTeJ9fFx%UTKu~|+PY<2a>@1{2b`cabG zQA<_1JvaLTrx zr&28_!*?k}B99pLK#X{rJmLvfHsV+wM&A#qV^%FdZ4ybyEruvaLY`TtNkXct1)0Os z2KG<4M%WyVk{+OD5KcbN|t4&W$Pj}pcrqqJivQ?v{iKtcLan8s1w7f~d; zSoGBbKBM-q%WupsA8?cfZnN}dc`vf=taQb?*PvRE+)TOGG3YT(`f|0HzO3|^rY{j} zmXm~8UQ@WNMq8k>dmXjW9v9r7VVNk{OPcBO-fWB`bYpxCXzeI{sS(hf+kx^a21qZd zTCjO}DxqAn+zbtg2zOQ$r09p*}ha~`*!x^=5A8zwk13^Ub@b- zT+oqFQr8)xK&cOXqfzSW2FJ5rsjJHc|AlhFklCheo5t8yJpqy_LUVWFvRa#IS^Sfo zbH~d!n4+XJlwn%74WOW0@RNR4Q~+5!Ul@yw zf(AyQ=#(gc0=;duila2WSwN9g$fDOqwXAK^?hb~yOH%=6se2oShGL&#b6qE~QrgD_?MHHE{ z!A)R5og}vl17|xaeOdGZN9njo7>kU8I|x9@*D_!L1?kJ8r#XsWM3L-b(Wfs=j%PYy zm-@^uy*Wzc)AdXqNpd$U7u>Cu3$Df8j!hlzrZk1_cJ#(Q3n6`Zl->`fFOTl5XYxpr zgVAi36NFh_J9_qrr-6PCr7zDTM+&AdKLM%Y2)LV-3+`6S1$>P60FAXqK65Fb>B3$0 zOv(j!vvR>*YPmo}fl}67S-En-X~|yxcDY~~=Bijsj<6VJ`)r-`hAj-W}Xx zN4tiZbr+xv1EpSRhyta?)6Ybut}Yjx^-5h`E~siseI~jKin@iV+#%`8-D#whcdO+B z#*-a;kDfhd0xgS|qRdN6^egP9D6Cv?w^}X`QBW>eI)bCzETYIf28x4HUZ!QBF%!UJ zsie1?_HdNkC}AuzO1zO01yG>3oBqd9Hi#&aT_nBbGfIVBE@O5X&QaR*3Nz8$$5}RW z{Rt%xxej{!aFfoYtE9J?P*_24m(%+}y}f;6n3>-8V6z-4*y_5@o4PFrdKc2$j@wkd z-3KH^J*1gF&T^%>YOch`*ac`Ss9a!O!Do6?VVFsG!Q(ej99^%r1d1roTMJ4(l`0q5 z6aO3Kf`?&F#VK+SCo}hs(Ybep?ct`BdLHR9n>!_~D9oh0;PD%oQ`G0OF{d z4|q+41y>vK!GDm5?P#BAh(wm`-&@x~E1?fwCF-Iv7Q6#%a=?iE6 zQLxLsWS8cDa+I!1%+i-5v1Hw}L5f{w<8DX&i)XIvIs2Ts`5Sbtf;U8q$q|;pY=4Q)_8aZ>2jBpV6GuKD!Y%gZ9@BC` zUqVS;WQYQ#UV$4LLSetUTyWMab#=L*swwrEC>QkIYs$6>jBVAYR5C>v(CwVLg=MrX zUfqauhiktnN+Ls1cYcW|C>N|ghof96qR2dU5#zBTS_UdC1CL!udi%+P9OdQ1!dPUK zenv_ZK!M(VatB9gbwogsRLG()&+{2w2)j&Xc0uu!GKd8s^-anJ%QDF>*GDNTGzaB^ z#~K|7>g~|Y8ohm4)Z6oI_07r!1KBM53bvZl#?#mXbaq_ffTvWwEdx>U0I5?GFl4l1m8^%1_R_l|-$C+p0la0t5 zY{H+cg8row@Sne*dqTFiY;dk?=;#R@ZMN_*iuBLTM?9E~xSu@Yb6c|!C-V_+8dTq` zT7XOiImo4kD9Aw`*`&!qs;dQOeGXDxEvRZaNY$zq^c*bkq@>czvKYgu&zfWUdT#4B zo@RKWYU{j|z^wt_P*arQ3?)^|lK~V|3sOGi+%;E3kvTilNRgXm*&aK$4P`ImhjNrd zBZRTYD3>sl3@rl&P>{Wh@6S>0jlVWiQct$S!}} zr`Y9s>W!S+k;H~>cI*n(WH0OJ{b03Vz%8cP3vRaH#!!kd%j-wI@7w|O3#eK!`CK)7 zc>qX?Qc5$8-pj_QwgvDpUI4U@DSNs62%l-vt@TY#E{Oh?p{VsD5d}*5MUGju;PfUh zf4f+438tzTOb)OS%=Eo=rvDhGf18AQ9@kP_B%!3Ppy}fRcgSS>9ivJ0F@BsT-yZdT?De!L&fCwqqtjESDEk=7lR8=9 zC@2=>?c*pZB8tpoqZp6%)G|=)_2990NN(riARXedH7kU%$S9+YgeZUlxt)7CM`^H9 zK#}ZX(aSBj%R8{kTxOT=ILgZ}o5}5z+GLlPrYm-t3%Q-Q4kZFEw-5fTk=wUKxgERK zRBq8>2f2+EY&G}t)pafa`WBMgK|55reH=)NdPp;!QiqN4X5ARK0Id_rZU0q#rpfEf ziUm{Z63Xh?hA5ERy(mSS^cHmfuN4a}fi)GM$T2*gc{f4l-A?v->vxc%=ibD9(saF9 zv0zF)=GlC$PuA~Xo`p}|^qxwwpgq3JWW*ELh~o`L{5ud}yd|#QO z)MqF+8ls?B(7QHAnIodeob57Fa@ll_GGwnX78xa*p~PqzFo1&W<+4(a z@|1`o*~OyIURd6-{tws%rx9UBwK&SiAI!3smMnWYZ-!!*8<4%^FMcnWy}aI9lfAqn zW-nL&Y?{454UoNb7iM{bd*{%eK;KN+i+zKdy=(@OqC3(|Te9rsyjyf*+zhl{l)ZGr zs+Dra>|e}^1ua?j(rTX}3Y2nTGqYmB=}lh#cClbGrm7fB4zPS?dWX*Rz3ll*N=c|Q z0+q4p=QJ=Y78DRl>Xn8l5b73L8lkQ(7M%4$U0p1wYC?S`iUmh-)hpZ~lPz0NoHt)f zlS@k7JBJ^pMe+IfbF%%pi75&b?epdtqM%rC{(T&!K~n)m<}nZBF`Jfwh93rx`AKfm zur->9|EU(HC=-o@D1ZXFP3yo>&S@#2NOqCrmI>t&KkRaZ+2vl2@_ok!CY=Ru52Q4t zAWpH%jp!_RandzGxjoicBe$%G5UkA)>e|4pv!H~{vZG+D8$)}yyBFxQNN#`nMU~t8 zfmCq>ygi7GvA=GNvw(IV$?Y+e9mwiY-5Qv57Q8)}Q1W{lqCjrlcbOIo)LKEu|3+s) zUszM|iF_qs8INSDv(CHs*K%ehYu0%aV6iC%JN!P`TaXWMIiayiAxeVOpd z<+q(mvEYRHh$pcTcQP39N;cxTe8f`+H!$lgKp_t~NDo64ITgH#s_ zs#*?GwTcA?z!wTnN-F&}>)b2ot7Ev8p}iw!)1r7^SI#=tVWudox2{0#tz#;EIY&XU zU|$!Gk|3hUob5AG}M!@2@CW^wiqdlMMgm}0L}9}X z4NN)<;xh>4gnF}!&y=G;DUbeORxCKZ$;;m^7EHiY6@$qEHienKozC>f?HA0CBcU$c z%MG^Vb<<+OR6vtFpHiv?9psLw>P;QX}$cSy1l z-VX^$0DB>DXH$+lw}uqFlsKh8UutSTJZQM;R}o$UKJ50SILqEdyme z0v?Mext$cxQTl8W#v-FkGZLZz3gmW@oue!eQ6#%q^m5DOV}3mB@+h;*qa0<^M`m)n z;v2Hd)%PoQnTKM*7h%1Eayz=6Ms9bBayz6(xLL8_DmKd|g01G&dvJOWp!X)ZJs~vm zy#^#jJ*1hg*u%!SLN~_VKuadMJsxP}D+vv^L}C*tz4Qyykcbs~31z1Gs7O9jjsm&$ zqTi#U&Vv6&d0-ywr+7h*+L_Fs&2|1vwtZ1Qi8Q>?M?BtY)(kf(53Kl>`SNhODETAqujNtQ1YwQC%K5 z>$8sP@<3I~I;vKAAf%0S*oOPylHbvRTP}Iet zh=TIKfgv2_4iQD>Y;500zM|9MnVrDdF3MLLyunc>UMP%3M!A-uoU3KP01EPz2Cs0G zH6n^+7mGe$;WKi1C6u*Q0yV#xUaiv6*=J?!hJaULVL#VyYX6@^$em+r&-{mQB`|#vyN)hPKnJ5UX z!d0)N^?G9L;$_mfPL)P30S{d9T91LW@IAJHb4ShjrYQSKVAnmNqgRfCg21u$9ObT? z1r(XbZe%=GU&}x}27<>PB!O*?{v|3-%(%@I1#Q@1L!I;lP$00)2XK`4MHI;{lE8Ai zJP5lCVs=@_QPLNg32ZhK*e$BS-i-Qt!pEeeY-isMKWYRPg=spE`4~fhHiilUH85PV`W@#sw7i4y(Mw+t zu)LD}9Yw&FmP!POC=l2Ki!7Et83Qx2GOUhLS4nQRcZws|<#(03{iTj9cd1`3!P}hw zoaFK?_pf1Uih<;?yp@@{md?~;VCp+aUfV@*1I>wn!%!`umqmvX()}QA)z7Tm$6|;A zdF_V^jv}v7k&)IR1H!|Qs=Je{eSMzpR%e2BkjrO{igY@y&ZwlQ=%mOq|L|dFba>bZ zmv3s4H8m&4J;`s&D9Q2WdP?%c!_vJaes_uAmNj(}hR6tiQW5y9hc&0b<%3&O%KUk@ z1bp7(O2QNSoK|vowyUJj?)ACs-YIrhj=iifJS;qHT4!%z=cLYlUzxk}3<|a1VM)aw z(xsWrC~J#KSv=J4a9`DTd}gCo);|t$fAmi@MPZb+MWrker7=(rauk<{qVuYy%fSUK zHbS*t?K>W^aVJq$TU7jLMz$1TEHcXNMi+Ac1(ekmovws(rHCTgMWQS|qdQ@j3Cu1B zILgQY4NcYr_B-i94n3e;$hUy9%5QhmRZp9dH}}<0*7x*&@Rs4)A*Pgt1|nPmCj?vF zl3UbjEzt95O@KR!%1P&qG6j1{GqvBv#`vdhjCnv?N0jBm>VoX`FitJd;I}p#r>B0@vuGo~a?je-)pAAt!SueJ% zrmP@k-3m)qOj-7OSg8H33$d0_>CxQUPq2Hx=a|0jDmhp`C<;BfU@Sb<|s==6zM{?=*t+KY<`1X z-eh(;#!)W1+KjTE8ANuO8LQakR!~-M-4}_Ph_c3nYA6e~Rw--Jb*7ZHh|ThQ!B)36 ze=BSr&{q>>O#r0@AI|U!kSdOVXIOXT%znBtt_IqCqO7r#`Ajosn^D#?LujT~J!6Oh z%1V!_G-V}4|I?I}gQ+P7k^|}?X6oZQQ_r{O)*DQeHTm^GC@e9hti^9 z6nOP;#`k%tK;KI$Yl~2r)$EwSFCC@BqS+WnYsR=2XlbOfHmu~7ZUV|KjE^qe!f^et z7()4Sw^tOXtS^?9SY`d&3hOhGJ^JbNB4hL^4WrY-TAWTLh4lr5MpOG$Q!S&Y>q~^v zwUbvAD6AJzPc17fRe0#?uMVSPt(UVrq$;W_SRHn1-o1ZC)U_h&ituPUVh*7boUXAM z?l^NwPG(w1IdVERs1pxHbE$`Xc0xP$6jW7>?gGb z8eboJ3~K&-(Pv2tsA8E}?)e&Ih#&vilm2tg9pObOj3FO-Ncbs%-gLtM6r{F$f z)$_f;tN9W2Y&QeF9vRnb@8igXlnxZ%?$zqkY>Y2x##j$%Bgwcn7;7>SN>v0CeV1Xa zE+Uj^N_w1A%28lk3z7NrQHE6t#?%u6?CZ=P>&`%sFFaC-3%XfcFsmTb?aFoJxh?5A zd0C+p0_=!4w;($WQN?(rC#v_BsKG)1D052uYX<(wQqa%Z)l8m8H1Zr7dZ|V**>G!L zE`NBLm>p+;g4a)`VMa=6*TjooVI)&b%x~Hp0r8lS;|G>6?@4 z;EdFz9g6i`Jo6e}jz=_x(e4rjyGa7`!8=(3IwiRJXEvRdYNpd85%uf?X@ybySuTNx z5Mr@_`*dk1rC;;aXPIhH;@eC$)Zi$Mt~GaE?n^cNk7$M^V4o}my=Higy#^XhZyy+X zDR>UO2BDvGA>7y4P&53(MA=v^%HTOnln}zf=gO64cof7Ku;g{dlJC@-fml)#P77Gl zpR*+Jh{<$2<|JJ@&5(L(9n%a;y`n%f%p53a24uU;iFr5b0R?8Twl#(UT1U8X+*>^$^qh7uI z%I4%^^_;9(KcZgv>;ZL}45)^gPbfc$DEjx~4K^9RRf{ovHYNi+wev+C>T{H3r-ZTS zQQ*(PpZdlt3cSV+)j7(qB8rY8lh$iws;*`OP=t3C6u}q~MV&9047|pIABZm-o{{zOy{@fsg*>u2OOB0L2uKNqNcPj$bqT1Id8VIZaNNNC0~+qX8rEgc6Qs5} z&fz?(I@{0mV}OZWTD28$@YE(k=`40@AQ^HLsI5)wRcfoer0;ElN6r7LNbZU8x0mdGIMET)N*%A7?q;4qA|m){K)4 z!sT{mjfSg@o7J8+eN#djO^;UyG#UjFD-l6nJi)5CAq)qDXB3j zDNzxr_UM@OR7BmJPDhk8-4SDV(rBDnDUQ6cIZhfZ)li5ZjV{P`yE5reX>Nt8}48K1+)0I6AKic?@V;NV%!}(7snd9E+uOt2TVp#&Z)3S*5!sJBq4{O|p|`n5 znYC0l%rR@Z=ZWiA79u_t5>xYGZa@0Y@iV;$n@gA0ewdy-wV7F=G_@5fOk-9E_T%Qi zO(yof_?WG4hqh{|fo&dJFQKaq{n(XNbaz3^yo6 zh9XKGpfu$ukBcaJQ@+KUBUShXn25s}&lg1^=0+6FdQ=#T9%U;-*{2Z&M}gBBIf|ov zA)@G}g-Ppla*CeBw7`J~pr{E)$zJMb;B?+TfVjI=Ik@UkIGtzTN7#uwoeQz%QW`X@ z$NEeORle||q0@;t4cwj&1u7pMpV~Ya=>5p)yaBEvArrrT2a@j@aQi?uMkR;K$Jh^O zH7QitB7#$T-%EZ5dBEET5z3a;vU@F}!0AlrP%iU;#GXYUOlFUMI=#mjy;sBNnqc%H z@-Gt#IeU)pgt)LI_E8?XgHRH8dqshM$jB|1{^h^1x>c2jk~~K366B$KF>fEtrfZ^R zq8%Ea8d8_SXU+O?d5rkb5G9$RC@0?V>B>=1xX?_B4Cja_`nj=_&5e)LQVpq#x$zw- ztoS?lSb{$m#-c~rM_3b;V82Y8Y!%U!NixL z1u}ORKw%vi8%m0aYOT&6S1BwreePK$M|@|fu&};{!g^QW)q?(KZmkLQFj83g$kTWf z)^s4rZ={aWgEiS0m2J^{jA1~lMG7nDYfkAk-}@QlRu0x8lp#t-L=goF>&wZ$0;rZ! zSQ>i*&T=5B9OhQqgMYFV^t1LOCeNK3dDaR$kkN+p;{DsW6g~$EmgqimD+g;cDJZ4B zObQuom@FZMjtFxUpZZV&b7h=cIc&@l)ZSo<@9@HsRg5JaIZNWs`5EO__7X~>XmIF7 zA;zwv+{!m|1yk`qms@!qypt!TUNzKVs$qs&ePyibe`a(5DZz0KxdgUf@H5D*9IVSG z;H&m$oWeUf?hLx>`l{;4hTEodVyYpdnMa?94H2wp&k>0QVq>C zgX;w*N(dpkQMu9#EiW3fESUvwo?M@HYbzP$Rz78#;a;yO&4Leiijx8i$qlE5Ysfd8A7jMPhgre5w=D~8)F{m+c)Lb;W+c3h0ti75K_<1;oH zwyDK9rVA#66_cT8=KUO{+lRtf^eFon%2ux^@ET{{#ZlfAQFIE^r1cuvTXvfj6m_NC zN?Kcvvid+JgJtgM2Z%49oRj&o5ME>KVZ_Y2*Escr%4@XJ=N_-o^i3tB+{yt)vq=nY%w1}er?QPuf?K4Jsh@k}PQQ~n@R!B^{ zO&q0NGsCgWWhhm=q9C`@4r?e9MQ0I3Z_2;+=19fYhA5ombPhsk1fgsW5yqlNfoFsW z$D3+_N+@tT2mZxT>a`G1ig!AhyLiMIS}PtWWr3m%9OWjfzk$;^K;4GOhkHP7T zK8-LVcRKU2<`Qx%By8E~Y;&u>k< zF+QOg<3~WlCZdLWzq*rC+IqCVsWXxXbZHBE{A@!m63SP~d0U)PjsmCi3ltc6k4I<< z*vcYu8A~;Ao^WP4sR~a3J7uBhC-DzVylXY$O%01KVh4Txp3H^v6;R&A-eS76Lh*lN z$loNC14@+@6H3t+OtcV+`|i?=Pf!g@NJlgM#mmG|nc_xmP1s~tE=qbl{MXk2;rCQW zHK31w}?u|-_un`bsr7H7Uq!t zQh#gp4+mx$eJh23D@FaSK{XaM_Wdn8e-{3tZ=v|mRMkWy{AA(L?%4NfD!_|V1Ah}+ zLR0g{qg&PZ_}Lw6zGJT4eabVHmOeM4$F`VtmbueUt~oKF!_r;9g}-w{z}i~ln?Cc? z$bGjCd4EVf_=NAR8}oSg`HiBII)(aK#?5`UMr!?;tDakF9~PT-q~WK-w{$o;ChoR* z?*=F4y6^7Sre5R1^K*U+oO$SYCV%GYo8@^wf~{dKMEl&?Rc`#KXLeciVZm9M{#e~Ka< z&?le@{Wbvqqq_LVNMD*RXLrPDW7Tk&sfIOr)$mI?EqKpLak}8U{7oJ4Y`V0?Abz2z zju1-X3a=<|d-7pLSH%rU_D`j1+a}|bMVg_`f+JOF&-sgO7 z1_ks#MeKmwmX$O74bHwA%A#CfDQBoLT`i#?mTVtULIYX`@%{2>KevLLvP|^$^QbrX zC^sW4`qylFNzS0^n`DwY)5v}f^<(x^ach}Oe$8f*g-kLRRM=1NR=2`_R@l$0W$ z!pvRM(y$wod_i>flh+YucaE9r;?2qUOzGE1s(kdC%8Jx=MtW!^W~3ic8|iZw`<%c1 z6H1Hi8qE#DL=i=AR**VDY+bHM_xx>!#{%JEu8Msauiyq}ihNAJkBoss_ep<&- zo)J-W6q&SXF=m|3{SAsfrL@>CxW&Ym&$m@Jh){H7d^uMr^W||wC?*v4!<=WuRNwuf zicnyGof4rq`(9%ofUOgV>-=h%dH&I&bQM3l|q{X`J5cs8|w4*=C?%aIM z7;ggFT@<01w@{)KC|EbMOS>30?dw>XP<}t+6$Ojoz3_NdX))TE;iWfdDfn0aVABzH zaJ0wH6VJY*pG3y#Ct48`!E%iV?t%zd555(xyMgTzNKTaSw0VAQEIBw&_y;KYa6!mJ@?r__}+ zK7{og4e5*~Ab3XHpzb}B5aby2^zU2n_OKGX>6Zwm|1$mk5=CoAZy*U%p^5q-HW7~O(+~m~L>DH1Ddy?g7 zp*#Sil)poxnh?(5ZLzVj7OUN2w};}6(ELegS~4*-J0IVqekPshS#jO*iVSwT%|xjK zJr&&XArgJ`^5{CP>h`~DR(MhyYK|>!nHtKsVkOu*S=b{rAG7W&og^m3xze!7%9ZYN z<|U{NL??@vTljYws=R?|2yIqM@U~NlXVaunXzo{!0vjA?3~7ul#0UyG%A65+j2^o- z%kX}E2XmR=R%bG84#M*_o5^g}Fl$sqv<*j@cnI-4#nWAe&yzT58&xSj+Zr1N+9P7@ z%Cn`1NRMV5bmjN(YywM2#uhM%QR2rEzw?}Njw(D8Nz`f`gz)aLU zjd8gU=HDBQZ<|ESc!6u$KYAOYRADGe5S<%ij#39G%Q?#ReFPM}*8iDleQ|p`^mXsi z(E6;q=JKC7iaXg5<*YaJEup|kS&jq*xfipC2q-$!ZPGd^oT9%lo-vFs%Q(tkQ7_J+(Wh9Ew zk&|)=X$#p&dBTX&)qk)tJ}u7xKE_2r!w&FPt|2!LHWC*|wae-g^H<6cqV zr2J4=GABiR7p|_uA_ezps+<=YsGqjym?)mnh+tC%`fHnB_V ztW*v=1%I`$N|(pHqQF_HG_tIm6{$V>AV>CCXFhs^O@cZK4(jVbu)m*V5PbGg_c%m7 zk{x5Ii4ot&8VjW#85$jq4(Oib2}75_%~t%*Zc+W-69QFz=p*A&yrZLJKPoaZ6&V?% zwbUt<|8_=(bV<`M3|0DhrqZ8ME92^eMqb+seO4Q{`=l$^NSnVhL}4`mg~|aO%rHnO zb%4@^qwEt=^xE-HrX3fl^;)m_(2j$tHsTj-1tN;x{8ku?9_2hk(U?041xEds+c`?$ zApxa$qs}QB48EX07bxn?QQDs}GV1a75qE$6Q|9iIrU8~lGciJL)W5t(Wz@03Ofl*o zToY(y)c~bWlSY9CZe9HSG{)a*XvTN}XsAeOxOY3! z)Wr4IfP(OWkAmFz2NFtJ1vc7Jx_N0TQ}#~ zhRi^Nf?NcTV8;{0=2s*`8KnnG%jNuJiOwqV*x0fNt$KnEQ87`9t=5}e>KNlC;!yg{ zPHbopp=ox4P7C7tXcT_-)e=RDY#{j7N2vy@6Hc!!aV_}8FLMs@?K$%CZ9Sg0_@c?~`6uy%$d>Q4%LMIt54TN&}%~Z$Cimx`g&yThb z3XLE-0)$J&Zpi zT^vWG-b$*u#yi9G$};rN*oLX!lnqnNhn)31%@?ZDT{DUM8jFlk*oLX!lrl*frQM|g zwL_m>+Mc6)al7GISUvV{N!aC zTOf=@kAiYgpv+hMU=j-a{4YM{C=>1!P>T2SIYmnvwry`>e33HcA3qdm5WEXyO$^$* zW$*VX1n=J7kVpPJ1@D$h-gxCoRf9~G)=#C+J;A$u>y7;U(}9f22LvjgvaKCr2YNpF z`8`f5etw4yMwABDCJ(*6Qm4(wm=CmY^7Ff*$d5GFr$9l@%*Qzsfox}YyI(YvauoRa zw`?<&^Z>$tFJ{O47ycx&M?amaGDbhBVRU%d+Z(HpOFyb1XOHYqlux_c#QFa{`#-c~5?(J2U zP@u4G!Q3H=8XXZ(idR^iFM;4o4CBjp9L06UP+@H&zO>sa^JNhf)`J^*k|>zMTBQn1 zAWWestfF5H6&7YV)bezJSBtWn*SG}qUZk)F;XU&NCgOiHqBQUwHpb61W9*gPJQ%9E z;og3zeLUxRwyG=1>zVGnNFO0Pls5H5r<^{N_ahMi25H>!oOX)6;YgwUXQ zxzY?-AjW_t*h~XudACM0fF+x6B$hZo;wU9zin*1*QMZ zy4$PLyZ_9Wf*AGcWfz;1AF1c$<{Pt{*RoL|ZMSeP#%f;)DEjxKA)5?^YBAQbVKO9P zG8CoF=O~N6F+@RU6-=pVUQysRrrpm`eil)56q!s!kzLup!~DI?NubD1g|yx59A)^a zss_v4>#GsUHIrq&JPogL`?HHYUgK66M)K{XWiD+xlb5-XXR8{dvrb>nsGJ~B`Sh@d z8*B#p)8sWyNm9JV89K^>*n2eC0K{RH_K32h5`jT3I*lwS8sRfDa**HH6YX=$nP?%D+U-lzR8U!d#a3Tu#a3T=OSZZ)M7t@QlpSU{t~R)ot=#|fTYZli ztA-{_HB8d0hNV%Y8XnB%s-dWAHG{3br<)Q=V!l@txJ->^3NF)CT1;sQ!LQ!hYFxEy zimuih&|qdj?^m0?rBTBkZul;(t#abHKxPG3GuY~TeNARS@A8TQxBer)5*pAlSZbBW zt-eo#n+En1>sdH~8uzH-yJ6dxCD2PU+reehsb)1J`^mBt^^|HPWEZs^O`hs~K$dJ&pAY>}Pea zD6pR`v9c3N(Moz;U`a!e6gp=f+B2?Y^~SxA1IPeVPq!tM&JTG-fvO9dpi*@eTYb}UT4BXj-+!>x*Rz|o`2Cr}W=_6M1`o0%lk6|V^W@>Ev-r4aZUT|Fhi6A zhSJ!dLE;{BQ6%d?Cx-*S|`6RI0HDXtfZFFTczlxN|jSU;gge9TFC$Y158 zY^2XUPD+pGs~b5f7Di>Nz^i9#6xMnf=ncq8c>>8IPw~ymK$4dgI!awHu`!;MWyicXrOOzvC~#H=29=ewQYKq{BPw?K@^nB&@3@NI zai!Wjj#SAds1gH>zJlrEA2qu8{ThY!R%1tNi`nQJKqx!DGelX*P)>M7sRNXoIm($I z1Qfk;v@_)>9@7guRc|$v<8HF)E9Y>OPmUU*pbP^xU1RMe6xj5Y_i&Up#{?9er88-5 zI=6JYF`hMyFC#e0pkIw_di{rqFHL@y`SKh}BaW>aMz)&@YS-Xzp)}%M`rKpFU+!GP z$fid#Dn|+?;JKEMrA-9-aI)zGUQ%p&-7Yl@W}5h8+@gdIBSX==))ESoSNeL6GDt+x@x`Q7UR>?`0lwVH_#)MqJzXc*U_r7qn)q_N zQk}gR3zAWji%3b4@;ZWj|AO+`PoH~~SBGnYjg%Ksis02?fme%1)}Q(p(9e+aig;2{ zUQ>YN+k9<}VPm{imK`7C8K9x1X~Vr%X&YRvM!}||7$03a<+XonETQDC^oj!I_4L61 z!h*!@oanaXW(wt3EkL!*JN;bi!lW=%BZZ5WQB$yNJ%6Up3w*96_XF>+_@qm_7V+PI zx+|e{5qoZtEIA6aS?gwkHp6Cd^G!K!bI+WD?6j*`m?|l?s902}m%O`chC3@$X=1>- z9pdXQ2l^I;*?b>j*r|E<{)x#W2J|o!fO)`>Zheyy%^{%{%dqf7i=}&Vck}QYll%1r ziq$;Wo##q*TP!_p3Nd>+3JQJmk_TBP5{iw!CjB!spM57R&7Foef}PkySldN!jrUk{ zLk1B-y&2;&(X=T(#F-spmj6Wwso_-UC|9GC{%5sc#T5_|;O4w{b+EMWE8a2}k%R^7YDXgy^{YZaOb24-C;#&0V zX~mz8@~@`K{|ZaV$<%%+Jtx~8I>G50o8d+)EBs#kVkgcP>c7YNAJi!&CvB1x4E$~crfM`@A|g~Z@sKLbQWf79MikEs5R!4XGhk*Yb8Qng{|Q3k6tx{H zpy>Ew(pp|-kET2azP!TtGM1xUN-?s$hc*&l2EHrv<#|}%K_kaN|1!%Pkgu}5U(@Fv z%RBlZL(AKXQQ1e})$`pq4D$!NgDmg78H(jy4J6+);Ls*E#{HTxI)GN0Ebp9DPHF$S z!3O!tLz@{&JFh6PydPj0^PkICIzh6`IQ?|Jk%{0YjR-1R2HjGV%-l6xY}SRx~Pg`J6| zES%g2_V_FqUqb3^_V`1l$wtQ#>YAY7~4WnMDs|iL$kq z*%p}6cbcRnIu0`s&Bxqmmr~NQm|Wl&dul3LOlRm0ZDET0bG72WrDpdHBT;+WWWinQ zxccw;nIXznhO*BqN*$oQ&QaVVie97kW*W7xS{IH?fJUuF4#1L;9ObS3!dUbueHe-M7>NUph0syv9*-f3In<^j^>0s|m{X$0cw8)|oye zLr+WZ(X&(zz&ZNd;{bfvqL$IpyFa5cQQ*~*e!Hgz1D&0oxZw%K0dTaeWiSKQGv{rB z;=J)OegrhwF>Ilq$SLj9s+K{A!1bMI28>@L&j1kx4nX}ZjRR25I|PQc7I>zgV*?oX z#XX$F{hF3_e&fmZf4T}CR^Vi|z|N>2aU=mx(foSz)N548vdqLJB&s*a_b~|;_^K=RH-J#Bd%&_1FQ93X^Cojw4rv7;FiKxMz zQ5(KUoVXhu%?`XS$jie~0MdY1dp-KtcZWaKvkjXEUPgz%@Yq;uENd<3y~7`?X$gxJ9DsGMWGaX-bIP715xLqFmEM%<=SSOn0WlM%u!oo$0aZ5l&lVO1M2D zEh5bt<8(%(hua;Dzxo5kfgnE;17M99uejx4WGtOAUecC>s=Ldo%b86&sM$-CGu88b zwte$<&@-6kz2%@Jbl-j8B4fazsFL=9Q{7!w95QG*sCvFn4zV_Jr1`_3`EN$*h%T+> z_v?EaJ_u4rX0_(OdmFPKSoKv$h7=6~HSP6E*tjqX%^o9T?GOwa+7;VhPjz=$@ijJF z8jhE#7iGtA!;9;$=k0j=sZ)v5r@(1>m9F#S*2j}yGGT<;FYz1SZ};8XsK4Ga_;G|X z7#kH0P!br*a6QWOqtr+4i8dUic8DQLXNEG&D+>DSJ%J*08cR|u0Y&e74EE;vO+Sjc zGl9J155C|iT`(q@B0WknL+PfTff5S5t+r8P%s z8Dlc=l7oIAzTEJv%$KFet{+|vxpFW0Rs1a^s4mgx12 zVDzix5HG`$hfpd#&a>%0GU_)IN@9#x6sW~L@0CY~_}|Z{6DKEwlLpiED4S@jH52XC zW;e96Q090RmWPD$+9E@gV+`e0uPDf<&%zi8WtWJepBq@VBTL*-E!B1w%ng(#oiAF7 zcZE>eE*8e3N4dq@t1O{FVJ+RlQ6`Bfy4TpGRajirtOj4O4+#`K#!;HAHd0tkyAWUM zC(3+ThGl(&#l7gAr)B*nDeuiYrJyk-{&*CYZ%kJR3dU@SObN6`jC~k{(8i}SnyAlf_~OIm^>pj@_fkB;Q4N(7keYTPbm9< zvJta{E}hv})ijYw;X}17pYO(G2`OBFEJKAq$r(xcqw#>YU(VXqb!U<;osJ|W&^Mf%}%9Uog9mE*0 z#K~Aod$x>>mcBWSWXUYDj{fzqSr4vfG-@KwgGrTxn&R#g|-+7eo~O`!SYH28&vZaa%AMdSfya^~8#g z#Fcv)uRxR*7!@Q!vYwT&`DD_?tP;?ZTv|b}qbxV7LBJAk~MF%*_%Gdo2mbrC1 z5?{QStZq7(;;u&h7k}iQBnqh~MXD)L$=$P!dDDqQGUUbWm`auF_&kV;QdA z+G-V8DGNmBD%9=F45*SRU|M#~yX}VdLDQXU%_HV=f$TouXV71-E(#sJT5(?b< zH;0wbfc}rz&+ouZStfe>nd{9x>hqDM+FI5`Yy2BrCWT)b+D{fxYrI1(leHf*$wDS) zvAwAH*Se%ZmUt|ir%c`v$@kkE%kme zm^-5=LUH>hjxykcFcv+Eo1tiYF9`(^irY~-OB6jXqUb0xX(JTO?RaApD2k;BMgLJ8 zrS;X_85?$hBybWkD<_-4-B8o!%dKV}^VBB#u%x@JdJs;;8HUPXUBi-od_DUR%MVL5q@u$+luj?}P%am5w5Nc$o?UBM;{ zxr%d0w%e7NV7JEDLap{tdrY#;9%m1aL(ynVR78vot@6C>!Qi_yR69jVdv{GtRHQXJ zQrY36ZUpCfblL2#iH*Si8lefD=P8=qH6`C6quJbI*r?A#+Li3x$@%yC7aHuTAsyKi z{k&wSQg5PeB=_RrO={!v(>22qJHHHL9B~0=lu)X4HbhBcDE+*mpugUQEgYqVh@#i} zQ<&DjUahY?zYMM4h@6zB0UYJ4Zo*jfD0g@>-x3O(lqOQL^7Fm|ijFTjCxw~rpBjNL z=sE|AHuJIEF{-kGlk&<+;>&bpuhENeQeLlnn(RC|Dg7F%oRmcR+~cG?>8Nbvq!cnL z>k7PjG5(i29e`d$PD*Qw;-s7glJ6Pt$}4P)$7R{^F%|(Wl$?~1U{2}Gl*$JE^qyOTTI^x=Fq_@nW=Kjww!5Hha8Q}_*NY9WXs}0XKwDTvgT0Cdd!^c7k90}% z#ezoC8LwAfWy<)dS{c_{68}pB9I)QF-8EP-5=x!rhA68U$`P+9b%1h?qqG)L^xAPc z(~e@(02rzU;n0pt$*9LlRSnx-62_uOxrd=>%$Ew(ncPbsjIgX zRU!eePkcv%NNlyUtWSyAA7748E-P`lWtTQ^(6Y-W7La|8XEO`8I?hT z4S1>6@~(EE`;$>0uu?JVU5^=2IrK9Qe z`dNG*lW(v_zTuX!$AigJ7(0ebW!~}1%2r&>EDkt0@+OkX$B(F`ay-~0TUV{pPVP{x zEjnTZ2MGbqlH`RI@fcU}`br?#!{CJB!5$$eGa-9%(gyVLuN*}0nJK!;L-Fh%(toO( z8Y?H@*(^hntC{>?tX;L=c3cG$tDF2PpYS)C*nbp|uL2A}>>T7`t*ZS@Mj(3@=ftx!}9Lo4yXz4oJEsNEsMmc0cgrrrN-x%PVGz5oSRyZRzFl zY4|1@Y%x>g726?We+l|E4CLc=&~WQBqR)bl7i#VvbO=99f`++9%>r?cAj7=@{A{D= zsdH}Eo3>kP^f(vaBcen4zDDoAG;n$Q%2T!n*za?-e_~1RgGq13Ck+WsUeV#er9Y>w z|KRqZS{Bm=^5YbMQ~U*Y3`$bZq_StuD6T5Zh|i!B$}n zMsM!Y=V8BUcVGAM&RL!3?&w%A^>B9A_8YHTe*Mf3+f@HM_Q)fFZ4z=mS-vjoyVZ9s zdvWdJn%^!+dns$@_^IjZ>kim3>5Z`YO@_w~x%KPb3qRcyG(TeZ?61PMb(wrN_^F^L zzPniO?$%GNzO*xSU9)$;@7^N(c;IJm&Fyfp=7U{+o|Ra*>BlkCCXBvlQpzn9O$-r(Q2BS)+I2lNVJp6?)oH8CrWy)O8i`Cnd;qoQyPZl2Sz7#_(fP8B}zN8{T zQ}f58$J%&#pd0j)JAU^1;CHMwx=-ofe96GX%5#tGztuc_Zc1E>DhDTCJa}S$w;eb9 z{PZioBz%@I>yck>oc;K`Yj?XBO{m*1Wq-?`BLX&j(DiQn?17CEX1)FXEl1`)INj1n*;=_*;Qm7UmTG@AIraLT&%V6k=3QNezF641 zRp6wP+djW1^u3kWZ-1rs`ozEbOqu_CqgE$JjawMDuFtTqW}Ln7)1GFO$!zNHOS3cr z+4QHj=~P$xTRv%%^h^NPGn!XK1k`F7vL7p;`3+W@_cQxZLvKG$v2)HHE4clLJ5kwG z8)}U%tyTB0G_pV0kI%By_T$u6W|8{RiSm{}~Xc*M1z3{EQ`c zfew*dvMvNJ>B3@g)f!O5{l*(ECU?nj)!I+Qjl-}7=}L;u7}u8y6mjRMan%YDgC>Po z3^UZ~LImFgk5nGC=S_$5C>b++Gr10Cl@7NUCi~JC;&`)wtJWUAMj8OW(`2ef|HF5N zBc^hBb!vU^ei*!E@QqQYCZ0e?UO2q8Gf$G2cIzknEh`8PFsf6VO(=;0`gav5i02$T zA;fd8s7|ef;hnxYJfIclW#5}R8GZHY)P4agWr1iMUQ?Tq14vsEINo8S8xykfxlk4C>U%A7qzUgdDrA5pt z0Y&e1&tvk`tSS?uEMw0juXDa=a12LDTx*E(Fhi-Vo)r=bvT1`+JVF%B7g2N+nY7t7 zmIpf@4vM0wj@SAHN2#$nz@S8C`!Xi~R?PmJilTFKi zC%~vgW&xYEe+g8++^SFi%|Jg!*|c`wE7`PdK$71g9i<~TvN0;hWb!c{1KJkKrnTO} zDRpcQFsS1lxrw2)*HFq)5O+&Q#P>f}$6ElBWya~JD?*6~f?U#wV2ic!@kdDgbUn)% z_e@}*Q62ANgwk2;KuCh*C{RD|rm56VN$PmZUhUYd)>xy=)zxS`kD^4m={z0ql9TJq zcI2gIxW+s4QSUm|f*VkPm6w%oxdDZx>_C?|sR~m5;{Q^&`YWpZq}J;H^{U=~v3ylH zY5a=Ic#CgcU$UdBg|T=ljZ5>i036w5kBNzmRcfg{Poa9|V(NG&R}EA&t=>d!X2#_U zwQ)KANUJ`{PgA|>bsuw0`&A7?lr0QJ>9EfXorHoq-s|>qlnuyG8fbmA+Jn}=sMh+) zPebcJN=`~VvH|2?>~CX;@&rTCm~ROMPD*@rjxxHffTH7zN$aF=iXH`D*!kht?cpe2 zM+F)ZS!6IVp%;gIB)_yjqbo zGOjkz$B>g^e?)OoUIUWMbseSIVQh>U@(kc(90RmE)yxA5)c}MAu zFQULniF~SLPD;6~R2B7v;jFQNg$mV*!0~%C8DiCL8JU< z2_->nR!aiqC~#IPb-z4kB_hryIV;I|j_mw&XI^NJ?9`kzSN7OAb81FG_Bba_wJWwl zCdL_!x~0q6nkX#j$fN3xvXMA*&pcNLvn|Hl&yi=wu1A|$+N4rKf9fBV8cWaUk?a8F zws5O8BGMWgOFA{wrfQTk2X{%IelGdHwrCcGe&bh)ye zIR)-`8=5$0IVQ$Oa3?MstwC4^Lgn5PFkLC^s3=PcQ)*1SlsZ*}@+-=cycQKm8JeqK zmPDHWBWQlve&`Lbl^Ni4wE_OLLDI<1=x-Ae)A%`VKl;BHX!-$l3v_8?ZT|aC2n7k}54Go7E8)le=5e=d_q4D&M(exR`u_QTd}l<;ti^sYii6 zi58O^x^iSfYKfwB-&3+^6dPl#W{i`7hQl&&&{{K2=_a7;!uaUYR+^gD7u`xI-IjVq z!D8~$Ys%#j62zWQMfT{Y(~FGJr!2;4O%LGI*zmF%}!NKly9X=`^NfpIQy)rhK;_7hbI zz81sfF`%m<${2nU+(->=F2Nk zSPLdXrE-P!{=+JT)s8;*D6FVLyaD)`F6|qDGjCpHRDLh;>XkYP{htE*Qc_sYB85nC zHKO!hAo*5UYagO9P7BnGaVgLik-~Zkt%(TbhP$d793ioGE~B)DR}?6$z`;IiM9ZKm zw7eZ5LHz3s{>f6%&)U^Yo<}tDTok`x5~8i=&%A+{E}?t{l#Q4Wbm`2-sF#`D{`Kc|}2`+0Ng5sfPa%&9DjVlZBwy46k|9^aJL{FPPGdUW3=+=8_Ob z{cNZi9$`Y5q87rGW=xb2Lh6}vr5SDmF$OGwNrH+0POTXjOO_E!=)5ap$=a>ejE<04 z$27xIuPD$AwUJ;FLisjxB0o&Dn8K`*>VqrsBrjt_iYKoj2kdRdY8k#sSlOC=1=U>Ld*Ohzh&rRpMe?C!*-zk2lz4_*N~(fgj=hSdPh1 zv^IsK40vA{iyq}ohVqS96nKqmM{ty9L=+uGCKFL)U#OvIIVjpggZsfcFQ-xh5+(RPc^b-x98+6wJjR@L91izB*8g+>?t|+{^=@)+!yR`1V|B=(1 z2&IeI@QVb=QJ}lNgx4eJt`Zb>m8IHpW{-7e#F?Y*&_N!(r0+;@HR`(XOu0OZ>bfR` zvuZ9|Y;3H>YPZ43y*w=frJjhTSS-Yc9upg-6bnfYk$N98=4#p* zTBRBy&BtDvMCRlrIMT9Q*&1|w%x}JoPL>9BOQc9PM^rbko)fAv4g8=+cmCQrpyP4a zn&Z)ZxFY#0#t@|%Lz&|hr4CSfa};x|fTCAwo0(GkLao#~9*0uIODA_zvPrDkYs-8 zC=H&<#(149J3huXK*R1{bPh!K0h&isM^!g{gYnU&v%!0V?AXdVW&GSBog^wT0UvjqEQmQE~Z0h9vh4jX?{c;h_T@X=v~`KF5`2PRYxeknhYh zrxc9Ea-!H1<)+|pdQ6s(IP;Vc+B%xg{$<5~M}~+k8$w1+rGxAXQqUbixrKc=-kFz= z`XTz}$PjDDDBK5=OkmWg%HhW6At<*F!ROSUhkm5;s!(fqsLj&}m|28~sHhmaOVaQX zF5PdXkF%U^2LK$SHREK1p#Jlt5$?jx>W%;OO$li;)1$D~@FP8yAD*zrwwUV&5mXf*m( zx-y9hU9)7_-ZK{Qg>K3ux|JEbkf}6g>JP>#43AeaxxGESy*;W!IGPTF$u#7A_h{68 zq4|}k;0#s$cOk~uElHJKhBVU3OApYf-GVX^#Y=>`m&jRuX&3`fgF;CX;6JBNm1wc5fX`1etd zOwS7sx5dN|uOi|#Gvz~+Bv6d^UXgVnP_tRm~AoEXrI$9!WLnTjFP6e&*>&jR~2KYPNjhdEEEi%-dUK& zoP|ajGr!ldt1S{*Au-q7#SPy`W0XRMa*ZCP-DrkVlcPNSq~TcZVkiy0qSV1yf;q}s z5k+sxcY1TA+Kq-NJ|?F#VF*V#_p~q;Jqi-=SdV|G7N~>*r!%21N9ps7fTH8BN$YfS zSL|cQu6AP>Uutlaw^tfDozs3GzN~ph=F4gXex|&3H~DSkbUyf~%ISoYp*Wq>zBF_? z5sm?s?+R3|PTg8*A<(Cj(>Z#+;&dJWlI%d~D4lkgjZrCc=VP1>w8zNl9CQQ&kALm5DcTFR6~e@s^w63rT*6H9}dh4#NBjx z`&LD#>WWU)rP`^wBt2s3>`+n-H{zu>Pz~6o1W5~5+8(8_wVXPJ=yjW zO1G_EQQ-Fc4h1B~o3Bz9T@#TgHr?gPj0wGv4KrXRIzydU`2bic3q)@~k1+$fO08wz zx;}NQKk99+H4nar3*_}mH4M%UopziV&}Cjxkk4I%=wFEpXc^?#%cK2#AKa8>qPL$P zdvlNc7sXF`y9K=@xi52>Wct@IvY#iI{cNh1$=fZMWFeE2_g2`?3j3M6ePWI2G4;RC zy?5G)lb>As{5|;@7wy|C?B`XppLgS>Hc$UtynBQw$~)T(^rn$)cUfmE83G>A+60}(}URz72MXPa8;0fCr1YcY3<#-YNI#`1L! zVJv!-eGEn8dr2sWP>e&gicl;)1r!}cCT)a*t=l)Q1w~b*aPa+3Hm zXMxO@HAstHlQS3VA{L?e1m31lnu27C5}~LxEZ8V5c7Rd&mcXku6OOg`8R+vULXn-J zL@4?LNq%E>lrA~N#`vOUjPrnYmLe3lp^%37br>kVOH-DdCY0G1yrN(+{NfxKU8Q;eC{k)s_K1jBoRsMqq30>Y5)V`4gq@FLOy$g+R4t;pUqI5-u9WD6 z&Jr~a@(llK)av|ur-6C|QnH3e#nkScgN`&XQANx|Ems?t+=L0o+Mo)dNyM$gxTZb% zlp)F)hN8p(m@$@6&~xb4p&TV(k$|Gt`UjcT7mu}v;cc@QTE8)-5fw~N=`~)E5%8<2qfP#pwB}jyJJdy z5g%hyprw$LatBI3$<{7DQq!R4P@lPka&(|Pk30gpnlqZ z&qVQ>MieO!#i!(~EClI<($rkb=WU40Sbas5 zt>WxZp2w-k$W%m>N;RTHx@10diL8-y#;eafrqTm6%J|dh`8_k}jLh3lbBz?$$`IvY zhNA4b<0_q_;Ox-bPjQqa5k;>Z4>Rq!My=O+WE<*21flDD|hZQS?2C*h&;6Dz>GK5Ml^U< zWz?S(jr#hST1H0w1f%jrfmg5H7Fg>hpg%%J{ZlN9Jq5W9V~r?1R*huWM=7S}V|)Z? z{mH2Bk#cP-f#SO$_gE02^ggVil%v3?w_m9->gBv3ce}_l{T%y|aesw|`~4GIgmxl3 z{v);|9l*PnnQbyE$o+{>;>8YxBtsb`;IFc><5#kcPudS-i;9WTMntt$&HqY4t__8Y znu1(ZsfqO%qwuq@vRzGuF7C7$mg#ybZSl}4A<~jkEHwqd6&1Xew7OMZKw|(@AxqVo zh6TR*ieVd7$qMDljDa$bSjjL|1LFZ+%YdV7_6S?F_u65CD&|Wh2(PzD^|wS&3CoLx zYG*ACgrXGuUPd`YByUVJ`*PxtL^?aXImr~8Js_GK_@m>ZkiPv{| ztLmBMgF^;o(5lh;v-|%2~`6-yZt0 z>dZfTK995w!nrzGQKR~C@p4~4E+3UPY_>nj>~*`9e(};)e^{`CqF-Cy2{T7CJ){b zl{@a^?ULf?LoJmZPM>8|J}Xf9dg!z+9|65H`T2f(I5HtMykFp#j?!&UvN0;TK|aRL zK*KiwhI=or;FP`y6sRY5={DYdv+XH{(p^I-M}eQe59<=u#ycMwMvLTtSxcdm>mTgF z6H<-D!HpsZwX$e)`WGgP=QXm}16k09(KC%c=NwEzSlM6~Jl zM|n;}(JQszm{NOAt<<{DhEn^TjB$f&Im%Ro)#S10QGWMkrX&;?;|8@k$|{6BWE7o= zGHHWu+(i8jzRY2KX~t3BM_{BkOcY%@6V+*16XMHkrN8bv7~|SmtLbJk#-H7#GR81_ ziZPzx=VugjJI|ar zc45j~{ZlI{PKq$miPkWlqMU{#2blaX)~edCKz*S6fIfben)(OfW|N7|18<)dy09w# zO_%x*Wh@I#X=FdzK=T{e5BMbrY&@a2AMRYTAKTNp{a68%6$lQ}rM2pno?h0R?8kkV z)b_)j%j^fN`W-0$aOL5IqMW=*HZ}=uVX2HpI^4b(8oM9xb)dpGM57iLr}%((CBPN8 zsH%BaaR4EiSjTqgMHg3`zu)+8ZxX9js z$MtW(_@nd&Y(2x@fX+?)j5comO(@;wdqqKrq$jpC%OR5g<&B#pkgZ^)tdca&sHx4e z5K<8dC0uBfLbT7*i_x6#Y8m5_?M)s^@phfeE!I6wzC<`Fk#uJwW*}fR_+x?F7~tE!jF_lUgVf ziaeryr(wl9qiR1>Z7+7;zp^i@-&k)0VOynR$-JCo#|!sTgOt__1w0f_U-SI=H%_D@qyD3z{Xm9@))@=*_G9YvWIx^xc!C} ztN`UH>3P!~C0%r>%?zLF|6kS_Gcb33dr(Cn6K}wy`Zu8PT6zQCK+!6_N1c}VnV!SF zbZL|8e)EgKeXKLudPTuHW5nyiI^(~;!5wECU-b>{EG%ty=a{K@(X8$^NdoKeq9Att zYNjcZwRyc|l(EAFUK%Bu*$FuZ8@3sk;gZFy~fpzouU z*M+)D%Igsz$*-)A(o0!vjBRDv@iFcL+5k#<{Vs(DEXVu|cDP^4X8cl)gb`5?9E*x6 zS^Y^VEJRDM?4$=smKmp?Xw{eq=4eC!0Y~0Vx~^^uK1Fuh{Y}%cTBJ*>>jDaju;RfE z_s(8Xpz9h>Q|Y?$QFdap*@YZp`8a(cC(o(cOP-VK%y#6ZX5c*ee0B~4Zot;WysUi7 zzi{w^*^EvJ+4*thaECki5a$>>HqSYhdQ7vk67rn+IR$yC&VP0$glFR?PjOm2`_jw$ zaV(+gd77sL<+8S-U&VSAp=#!8Y>1zjmLFHLE$YHRJ&gxS_n3{Cs7PycgmHTVO;ZB9 zRPCerm|8?wSUr){BO)QFlLaqg+@S6~6Iif(Ww^hh*!31MhgrlM)D|)FZfnb?XsXxj zqho(?#U2!6h?2`tl=Fp|MU+tL0OcG<$?GAY=#5NuW@H{vn}?>0U}UC~PgLV`j&etm zAxaHz-hzYzpQy%%9A&SFqT`E6>l1N`rh_j}Grs)JQ6`P>H}Hwxe46+&N!gM1CVV1y zeqZu^s0`?%n^iv1C-gZThC$v|?V0`tWk5wJW`a+2x4^46BllH$3h4dFC;ISJ#V5KO zNU~|yQTpaHY>emR8NkQb4``SH4fpPPkW-p8%imx_{hQA+l&)S;;1lhIzgMD~T%kJu z>iS2MUAff#heY87=`sWL)3y#1#SD!o7A3gdmB=?b4AKdu@pgZM4fREEVo{QNr&kpC zMt@E(E8nPMLp|QQiWbMu)<~^CbJcSz?ZaZzjx_vq_?8YQ$Hd(>@7>_UT=(7m+SF@Y zcz(`rfin*sul(eI)-i>fpWpaKE%(Av*I&Eyx&{MWhs_Tq#=Kq8qEQH?NwqoXi0xOZ z8|q1yJOW)JYb3o&e~u~R-_*+3T`6*36~ty6x7$34Yoz>LhA4{}iqZ{+83qXj8|pVt zv0YQ0wFd1yy$9XelhXbnesCkwoKtDvaH8KBoAqwYd1kU}Ul#%fh78_a;7@3S#}pc!L5p#4ln-8r9Ax(q0Y z?)cbf({ndNY2XzFM*T;)T9;$gdEm`cH4z+iV@|$1&P=;=QXJXiuyA$Aebj=3G#xPG z%zWkIo`hc&xHEF{T$8a6E+;$A+|7~iN;QudHpuN577>-!Yv|;(uJQ361f0N>o15uM zWj9*{tG+?xpnk@o<{S>zRE;cthAeiGRWFo^7UnoBEBSE^O2EM)RO@1Uy?DL=NmNGJ zwdJy{dbGJ$zvSSc!OlEvUqYkMTn9SMS?poP4XbL5%nTq3j09%m1a^VudRCNk8fYEsSMC3Lfu zerdI+@9>mJs6W+*QJ7$gKNw3%SnBg^svI{{>Wf^p96 zdee4mjUMOXdqi|d-`D8xb)|=^}ke9 z3Jd3L7#4ka@_I_qM@6OZKgi&d1%3>gzctn>&X1M9gp z2gS^Gd94Ge$i3e+2kJ~tk84#K3X>~x?_Nu@1FGPyFjb@f;r$qnL?!n)o2MK4tsgLt z^L>rSxr^Q$YBVr-D@U1NjPfBv*`-Hm@F;Dl@8RMoO~)CI{&%D8vDqG0{gy{2aUQ;r*o(Ht8FYGt13=U52izFWin*o5&l3uwjTKakIkX`2jJ zJS_+%ezPx>x-Xa2isv6R6ti2SZU6CxV(5iqM|&&dZe+Mgim&s$rMH8EaS!X#WoNy} zJUz#J_q*~um|;oXvo7m|;h0EUOk^xOKDQt*&zbF(+H$aFUB>;wRL?eSMJ8biXAPG^ zzcA_XUR#PuR9!|(G0;0jIfb~SP1!D|h7}Qib0Dv@%dyw?uF)G z1aFQm-HPX-qL!rjyHr4%#g3UA<-vCh#}dX+GQ6T-p|xWMM_DYQ z=-t;=%zf1?9{MFi{fwuD*7-<|^5%QOSoA2Z8A`5NiAg9}Xr1rCQL5|^P;}fiX%kJH zyW_!^A&f8gaFm6g8!fcDP9?tltn|fRkA+s|{R?P8MGLKUf2k5pKhfu&h1Mkh0HZ`x zJ4R)OK;?Sp+?KxpeIYHh(ncr?t=&M97Y#Z}yWYvhsGN?@$G8w^ztTc$Of;u7yK;bO zAI3+Qb{nB-N7reDaz<%IBcfoT^$8Zq-Fx)yk=(;<$#-O@rQ}Ss_-g8QRSHOWoya{P zQf8HYYPDxfAE#mZuL+qCMA7pU_x^a}Yy8{fOM7{qaz8sq=EA>RE`mNwZXQo&ow{~B;_?_k)pg#14(`(b(HqL z$j11%W{iPAYedRx0>(&w?}L8?7;FdV{WqZ;{mCl|l-Ig#nkbPE&2@Fl-85Y&mw;rM zar%iC&P0%^5kVt};5AZZ53l5m+n5k&YJjZ(bZJ#tKwwb>p(Kc3?yMK8*fT}?M>U6%uQmNFB=Zg-rg9Pzs1)|x6jPu-s&k;CYV|hi60=bYHP+=d+q(YeusJVooU}N4EYS$1 z53}jVl;dZ)HRdRFfFdnO)`=*3wT~qfYN8x!wcr07)c)(_rOf$=tNr(S31iWtz^(vA zW4|R7cqwz<i4Vw9J-k z`96J0^in=(AbKhL9||;DV#P5khYP&g*z~20H-XM-`R;*t>8a%#FxQCE#Z}oDACzYR zA7eeBy+vM1VF;(R>AXPGQ4EkS-4bj6;%bEQ(AQp3;H8{`2X;BNd=zZ?_dOQn+-py5 zeh*M>;HV&Dh`BaWBZaphg?GqNc~Z)0ZQKjq`Ga@3w2q4Z{-REV()lH?C~#D=cLz%YNwpe0Nf&Ge5)WbcdKT@|@}MAr>crSlBNtDVdJc zabca(lz%l<{#RH^PNw!t={ec%&wL zHJ%>GAA|>EZt<;gksk}XLuX+Y2Qj@nTca`GY5Gzoj$dn1SO6!G9c_s_1VqJOqV?zZ|(S8TRc?iIMd(7vVGA5BiZ ze&@3EyQ0?+Go{K6vCMd;-l+74&rJR$h&YdXVPtB1Rlw%Lf!O z`+=2LPprI@8uf}Q`if53lZ4m4WNpL$YaQ(9t?BC&ye_@pdKdFsm7FB=Tbo};Zw?iA z9D~0^D2t6z?q(?U)qX3X4E~mi7!C~PD4lOJ9LscuQqL<2iaQPr;wZ@?ir$ax$^1x- zPe1ru=z;5L{Zj+lgD9$&EsRBv(u<+=SNo9?3f4c>5d$NXAtH*7yC&`WhjaIO@Z}KW zixg9uH>s*Y(#wWxj02`seVR-L%f3_0L+YqLg-NAGD^=J?o#iWrpjYK8(s< z0+pL5?`iiP&_AH{PY)^cN|ZhTB-wk{QQGx18{-R_F@6BF?`i$h6=foXa>Mef237Q3 ziwLDiIZJ?3%2BZXS=3Ln{we2G^zoop=9zwu^<~`et>OOn35Oqa(~9SoxtwQjA2M9= zfG1e-h`l9AhBC^-!9v8b+*EnQ#Qs01q7O%zsn05UscarqjHO*{56JM6pZ+apu%w!8 zeEV_=!R4=)w94E|i#Zn@`AC#@TFdTSaEyZn zv!$63$bHZMeXkfw{TQen+AOOr!nE#HCWKT*lVF71k^(pN<{k>>BB(frm0%zj|S zb4xO+=*PO!FxfoEL8oMn%Xdw7;*$vZ(Cjqlc>HX)dX5H{Zt%GULPN7JK6~J_71$*z z)5kM#T6qZ%xL4m?X7kP(>#Il~13*c7bTNmFM|wL_8!u}`jlOv5IzMB)`*(ulq<1#Y zFlTd_+Sz>2J$a86n^Qw#ERS->=?P<$pBc(hJxX{IIp@tMbCmT*499Yop)B!=f<;U7 zNgQRbh@y7|`!iQi#$l|{*IIm(?Ugt6#R1~8PKYKKxn!J;MEER97((Q((L zU9>PK{K10Bd%}A&zF>0>DW~iIFj};Xd7Sw2@d=qPTTBBwTUWe6ixXP3%-^G0w4fYS zS+qR-m*JuXY7L3{1cAyee%Z}V0sT!{w7j%XN!lC&lI(!%C>`?z8{=P^F}?}3)3j(= zR=_FEzgX4aSkp0263X76y`o^z@;#C^1Nsk6F1{YU6pADgkq^bb$WTu&9ecDrO4+Vj zPL4Ib7yOi^qMyY>n0&ix%i%7H#d#rPBRxVOgY+ZNR}XPmxqU=&6><%55Im z_C_#4I7KYf`!Qk)>$YjKM;21`6dR_0g;1@DsL+FhO7|fl z9nGF+QGozz9n#VxF8}P*=hxneG_mrh8vf})vnYuc?QQkM+vH9c>a&kcX_mW-;+tJgQC{V z>XJQrddQ$9H-0nxmv5fQd8_8pmo|0YY;S&aQ~toE7f$TA*9sc*MC;h8H#WQT*%w|4 z`le5t-JR-8+R*X6*a<(Mdh_v~;WHAlf49!eE|@d3pi=+O_Z+SE&4%|L_;qdf&>f?# zI~(2C{Ko~84~9;BykC>w4##wB{=jRClkV7fxc%L zcl+MqsCO~rmHm0WK72gnfqkK`&ip#_hew}#VS1DOlfQUs{#+e=lr4 zXy;ACuirLw^{(3{{?%>1bDGln=oN5h^zE@<*8^uR7;q;=!<~=^R($XG_WeEPwqxvR zH06`w0kb(hDnpZoOh_Ybx&yuI;} zKSHMdanD~9J9Qh{WnkmQ-*KHYFzm60bOGcTNU za!8M*pqK7YNnpMb$H>^e!FUIJ(Rky z+wPd&juF*A-}us!doD~HmUPx%;pFU*_r|;5J90xqaPbe{oU}{xY&V~0cg*O~aKsG1 zHTMVH_~=XS(MSG|z3TvsvS`{Dl0XQAF1;L~mz29)DrxkN^deF&$pL{BOre(m0-q>| zpfnXxiYSNzRuE8{fb`y_s?-D!R0RE>*}c1W-;$Sr1miD!-z(&D_uNj|nc3Od*#Z?u zmS3K)+5D>0H+2(Cml(5v!_< zTHU_crjFy9XS}(y@v!vg-YywjqgAa)$M=4j zlTHsQWAbbE_Ni}dZ!KGxIQ?9YXVM1knc)L2PVe4*Yu5`OX3Rd`%g<}ZozMGUS#!B_ z&k|?ry!-WvYtKwQQ>$q4HoY?r*?NCmee_J1 zaq-3(osXM+t^FwSu)^}|_>Zp4e?+VO$7(v=m$h~l_a7I4Qrq3Y9%T`vd-=X^lmFON zK<+ipKA>CZHEi7zsI{;=lfR#e*_SnkxNdvB+8xmRY_ z0n0?ogsGi;irg&qgYhGeYiE*PJCN|l)cu~HdscMmcWCmBO|^%g?RT-`jo&MMTK&@W zGxfgt>%%+U%X!>L*cF~0Te8&0*IpVQc6sHPrp*&3AB*T2Ht<;ZaF@WD3;Veq&%ddm z`O8+njmvy?((Z|kNB#V^)w-bc+jBqKSoiSTO`C4*U3KQk*)hMBNe!J-VoZ9cjqBHj zO^I}oW-lpR$$JYfF9m+2rA)*G<{{Q*CzkMO-8z&ZrEbsBoE{FE7wKm zuev3zS>Z+7?|yZlK%KNvB{DCij(+yDBXur@m5jBqTZ!Yosk0k*U16H)wR2;MC9BIEd){QmTKhPHcG;2qlW`i zCC5=3D+%Z2>~WZ#kc6dWDI}a7B93S`L=J0BA_?Lq44ad~^bg0BYTuf-+wz3EE`u0$ z<);tjBusT&sr#$G_3g&2uXu3_ts4x@8^rS^&M2cpw5-Lnb21pT@6*+aG)Ty z6}nc~)Oe&Tb#quw-6olLgAIG&>g|E0(~c#X>P(nasV*z0&QUcrxx+JHrPCcM7D9&F zedm)S+xMH?k$pM9CCPY;&S=ga%mw07rJ&B0x_#dvl)cwAQE>a-*r7RGKV9QKUE@Ao<33&EQg}tNnlfzEFc}oMI@Y**^!>+k%zuQd{l|tH z_g(TIyIke|V?zz*Kj74NZF{=LeY(bdy2edQP8sg^bd75;!j%0t z*0_UUH+7=-p3M3-P+Q;4Wytz|kj1TU^$!XfEXbJ9qb%QWshRmaTjOfjaG+p~JN9#7 zjf?UOoM|-LxA*?}v%(K`Qh0Czj%do(wmCa0OpDuA9|@9BFK*vsi(Bd9A-2oBxr|Fv z)f;rf@}wDD5^*AmdNtOI$y1SSsCpyHe>0l<+|68ilcSVgDU3yp(wm`#$hE?bg5CF} zm+WH^QB)Ke3`CJ|!!oC+EGW8(Ba`hXy~a_Ntt+TgGJLfJp)`|jp8ggk!*3Z;MZkC8 zjTdCQ?+xg6N6GN8%LVn0OvW%O{RJw&Ex*jP8t8Rt_q{N**3qnBFOZzGNJZ(@l5C6< zoY4m#V_l%3Gf?Th91 z1SmxCDMWCD%ultgoN+0>h4fk~#Su!Rc;1o($x&c_R$P>spFGkX?rBRUBqU>;cV9VL z8~UZ;*)fMK3u#XmR)3P zjY&>VbGA;P$)mb}>p^`M?ML%Dw&GG+bWhOfz?0i|B=Z_=$0f;ZAkKQ{C)4o9!SWop zG5R|VlN_JTolZ{yq39v};7(8W`tZklOL9PHP)KNy)Md*4B}}FD?>uhmS4c9oY9I9s z^HJjz-sMR7WkEBkbx% z8PlaGrEE7nN-qSkF~%y!H~?sQZ6^k zS(M_qOFpl(RN5r+POWQ$m=x+Mq|hpIW*v&Fvu4|8Prq4(42!VmNsn@!K|r|9gvL>t8dCfwAJXdM<263n=iWJ8mEx?59vuabLg zgOhscsMdf_+d(~T2jytngmz5-igr-Ef%i$+EawtUU776Dsj*>>o{ziYoCF zFUY(sa$Ay@bzPYhBAd5UOmj!>35MmYDfA4 zV{{D#qc=p=I8dA%X}zkPJ>4!sTu3%%(+@s{P#PIEQQ$~Bq2|o#qVmj1;eVzd{1I?c zM_ubMbxo2h+JWMo#zvu6WI1D@>s%g}F6pAMo99X;YNDVYe4%R`$~{ z8np?!QG%8Qbt`d{3D<F3%4GqY#s^A(FX%l7imq~$ zVSnfutoVV%-R;sv5u0JKEQ?urB^j(Y8_5h-U$O;`KKK>Q#!#(GZK@i7(x+I=!uFJ*E{7Xrl}Gm;*q!E*7APau?S z{+cK-Siii24{0AAdJG225#l-u(@X(@QskCLjtYG(NW2LaHdl!D>o_(Ud!_vBJo;?86VDRjwtoMluvk4uMyR&Y77HkZIJv4stO;66P{rF5wppUjlfR}%%b z8K3)QXBz$^mZ5N*AO!U^7^P+D%iM~xyg!kq!F$-OqiOIRP;@NAU?zljNq z(4lUgvJ40HSu&cjq@3I`5KER8CYHQ=gtKIB4KKqB&`Ek!mLWEC452hUrHKN|a1SU# z5NR?tPO%}u@lUq5euxrol}kjInw)pUe$;(#v%ix~q?7&Yc}WIdZC+kr=B0*QCzlrX zol?%1w!FuLb1|0l6;RakV=PmKGIBAN^Mx{aK^Za^*i+K4nRQVz7)ohP6hw^+X7aIk z1qdiAiVVuAk;PI=y+Dy4ZF!Grz)>1RdFdpR=d)tAnP;7R*@CDst|JzXe3^UAEQ=Zu z?@Cc))<7@4sPRQcWf6hOEyebSegpKw6g8eGC`FB32I)~c|2>l3OsQOfkMS_jzNM(~ zuswxeJi$w+7JvRiLYZ+{K`BQ;yt4azcCNus9(DNTf~yD&#DdK+jq*qkX$CuWBBqH< zyu}sb{WdDD6PnlE&AI{qK+|#uQ2OLUOBFmyf1R(x{6!>`*QAT&nP@xxz(fn7j1734 zu7WbovZLVQDIvs{4gqAFy$;9jZ&=4B&9LXon&XGr_XeGN#)H#S5?GJ@xL9mDq$H;L zNqft*QR;l-kQ{DE<3b(hXQ%^z@?e~pPl+9X+;S@WBD_KMO}Vp+Z5w7y9GqZd-%4qF ze2brBliIOI%6t0Ld|_7^q}tMqL*vs17!z$N{gLu_w5F1_9PO6?U_&?i4abKG^H1w5 z?IfnO#nejM)q|8a^L4JYDX)0x9kZHDD2+TdQQ*u|mI==M9}4poHtT`@*s+>@?8mHb zf|X7yqH<#M7cF{b5@v^|7}v7s#~NybO_utmsi%5f}gYOPFc@S#H|x zCZYT#FEOR{lG|ib+8&{#v{&pa*NyKM(JL;V!YsQY zX0@ZhvVRLhA}rJXqs7I>_lro9P@D9n%%n?aUYSYn5n612gUz(k+6D_w=HrxzqBcS= zGkJ=4-DCC8U^Cdm?I>7jUGB!mGEPKMQDjiAv^Yg! z7|#}3X?^z>M;W@dh|WsOxSse@e2dc{ZpBLL#j6N#`AVzPJlRTXD!uN=&j(&DqPNmQ zSq`YoC+PmxddDN%0^LF@t*W=BmDc+}a?T}l;`z~aKZLjS5ac_qK?}StFix## zuQ3t0D@4!^A~;LtC)C|wI1Z&xuIyqk;@|WrvqbJCGG`DweV)B<(mO?Qr#wz>j~!OUufod^CMlaIy50H6+P`5rm|XH z#}#VMT5!!(w5*o;p^KVxr!YC#6ci8)aXOgc_!c{la#r@u#1atd&NJeP_0zCyg)qFlq@rC@0PMlO^O zfbu~;1ACN7oqTWp8cjk8IWHGV_`6KB5K8&<$DKfMwrLU5!Z}GkN}1ya_dC_hKbxs_ z<9owsx|mDO_=OiRJXcI9!FyvNega%TFN5OzQuszWT#1!n)m4tAA7}Qvbcr za`peFpNrua$czI;^7QaK$toAPwSYT zd_6RAvd|Ji9%^;%$<(!hT+vod>34KsADZ6RJ9Bw#U#g4pJVOc7L_t0D^-dh+n24g* zjrW*t{34g?z&_B8mudM@7}Xp^QJLk!Skx#BwWhKi1!Q#gSQk%c+Fj(Ds-y|DE2J6fjnZa5`uR9D@g&%bd*87ag zD*~^!7qR-y0{Sgh*@9&!9l#`hjRul)Mye>C!3_KY$-wh5-U8ZeGFV5FIHj&Xx#-kG z&uB#adgnQ(28bvySd9v2yZ!kXQml@m3C9j{UaN;DDU<^LoKjG0?NTPs>k4_!j_TIu z8rj90_8Bx1D5z@5rXG4mVy^J%4^1q2QJ*CrFqT|Xv!pM( zWbejKu9(j?$fs8ijhp~tSkd9oL;+)g0$0((D7XsE5b-g!?9mAl|C!1NlE7*3&Z(4Y z)6j&}X+cN1I`vH}V)dU&MsPoj5TSe#nNO!4dPY;Glu~|#nFc!wcHvz=&dxOaM=Zlu zu+J$3wPiph50-KYOYc85s+%>DEJNlgE(A+dK0V9Oj0r(1a$`cUCNfb%2=g)79$&-R zzik=9L5vPdmNS-ImRknKl3y50x^kAdxx4DsL!B_r|9&kO<6k0*dVXM;hxzfdT#Tk| zm>;((YP?>7qa4Qd!8$4hBLtM6G*J*WUbiQ`Yk3JMDvAussFBaI+n{JW?b3h0hL2@- zIai&ecZIi!FQtEU@?{5_YaBb$1#X{3jRP*oqDCraa7K-Vn!4&Ob5}Dee-NnLQLc69 zBA|DrsIeU)P)F1l10*NERFqbj&&K$>VvJpZwwR*ER`zX=>p(e-@zJBquNt;hc!!}# zu7Oj^Q4p^zMstlOP1`i>-1LD>-2G&!AjiD*@@$cunij?iK~>$4kV%S-wGB=ann>{7 zwzT2+ReIWhm2 zea!w(AJiM;GrnCXJ5ifu$>#L0sz}tXAs_0ryZ7HP3j-vZA+{u=LIs;?Vl$7KYT=R*JO!m^`@TxvO#>SmG8Cxa}PEJWnHTwAA!wK<8gN!M* zgb44{wBZT1)Ta$8a=Rggb4nQ@4r@|UGD^&C3AQx!kQrb@Yn7z4@k1aa zznJ8>;q*7DOC(FU9>P4=v8)T2P5f11S?`o<9nl;7H-m3(WA4@cRxNf?V7)G7N-Lbg!Oo?Rt;+a$=H`FW z9+jiLn2G!f9Ibc`n*_;G;As7kdw0YaxO_P$6>#>hRouRZ85<6^qUocb+1HHAl8v>y z#H1&srPuNDe3T`D-NOdwy#lz0FFDKg6HT>#T$lxJRmL!`ZbkMX4WZ?bzTHFF&}bE8kUj$&jdgP1nDe z1)i<2ornEShvSS^rJws<=Z56kbv=}B%wwIHrHN7;DAzcOYo>srHfrmcQ9CL(YT+I* zYSc40^QDU%rTHyglnq+m$&Laa{L)E|@}h{M;)_A)gSq!S0=^Vve7VX|DiqAGv%Z~M zmbg22pp!2>V8S=H{gD>5e`QYE^b%zhG-6X%>`gRkea*x2Povp4E*bVfv0sX2u&1h<8G_PQC5j4 zYTek%bYrhvsvZZR8|h@QeneiC#?mZV7>gR^JFTf~M}fimu^mUr5K&ZoF(?fdn}A)@ z!Iy)KFEu$z_!vEd6&*u-xoLFrWfu(A(5W$Gn8;wQ{8KboyXa-7!Rjzx*I<3msQgag z)vlJ~yF~y!mJC)a#F~zT+^ay!-e5(?vM~lI#uy8>@T5GWIl6devt6k_ZJ z+Q$71p5M7Bd!%jL9Inyw7$8<-6vMMk*K-J(% zJZzmDn`TR+Jw97vj<HH-YQ@y z>1tq)lJBnWficAQyWQk`|2>RJ4}7nQbWHo!u5O;BT82y0lOxza?Ej%xrAv>c_dVC6 zY($||dn+S1VW6kD?0wX~%H(Uc|0Vy_%Jau2>wPMQe=0`)De-z$^>@*&s{C?Q`cx^5 z#lt`&+&}xrCX4V>I1+gARW_VE{tuQm=@GkEi`!V^MDog4hWv6rsyFSqc;)B*R+o5z$JxS{=+_4ogD zZQt4@UnxWOk^xEhQ;h#5laus0ElKeYWZ*B_(~{)t6qx+uN|8w)hmBKx9FmiNTq!&0 zwQ<2&$AQKao#yXU9hy5oP;c6AOOK1I4>is-}`$Jj($r=Do{%Fsm1 z?9NfH*YGfm1|~hqEg_fW%;SX8FkKS`F-9ab@!uL_h!@jHhX|dO)K9vNCfQC~O%F+= zD(@T^%Y2rU>0mzVUYUk#VlUHjX3se;(%W@(QCOzqzFBTN?I_4~?K#U)R@M_x)OP%Y zmM4zA9JTHq-IJ4f9R`gk3ii`QLGm4IgEeyXvZEksx$ePH-V;$&d@(4a7S5Nl;L8=p zmoprtS_2QAs3qf>oBY43&M?B?>= z+kHO#zI`6uR)3UDW=E%y9Bs+xY+pRY*K7$f`-kZ5i)(FSI~ta#_qM5sA-6Bsq&1kg zqbH1mD~|pvkMjyhuqV_M6ci*CA2_~6ar{0P3Lltgf=sx|)Ip(8`0#+XFyVbYB}=Pz zQFEAc`BUzqJ`8R%s)i?02$qhB{3$Rv6sLWW2}kLYAfTxDVo(Mt%;|m@0=^Vte6fc* z=U(*G2~w)BB))jB~mKtV^8IJX=muDL* z@)T`xXJx;5TU_>+N7}Q`O*>n0wWTS*-`^652nO~l#7CCKV(4~oqd$IU_LKeIv5u3y zsE&S^P##=iFC}iCCX=2flkDjnp2MPC)W1KOR544}q<_kcvD6NVxt+@&w3##E`S!&s z)?K}jTcl0D=%ReaP|nFsx*erBP~PJx$3+yib%ejbQf`^tu1$Cz*6~Af>IdxweLH^> z#-c_+h8QRccV|a|Q$L9P6tb}ue-}_5?9@45J_KJ-^#F?A+LyY%#7v+^l2cFmLUQWv;!WNv zO4|)%W2~$gVHo8Cd|+xa4wmr_LU%=;sdelI=ESLLG}C=R}5pL8H5YGfR``?R+rHn0v!j*m0Oq$Ceb#i_8E z^!_<%S344i!JsVOVaAc(l=Dwz|1#mfJ-r)9_1gBv9zLjw?3s(nxRniYjI}y@9nnrMIM~qqm}_0AmU8F^OXd@wb=)3B!)rhu$s8;sGBbL1@3lf(rW}Zz9OfeAX}! z?^epzA%i{&B@k#Jl)+XUCu9^_A{2ZfvQyLg;EwP_qEie)gDw7n!4~3BTA!3S+YtQP zpZ}EjfOp3vB*zY-FAU-DPohJNgwB8L&m0Q+1}>Yiwx zb=WE@Q{GTLEH?Q}(BO#049&AVNb~IGK*o{Lqe)lpLsy&|9P0RN1dGoqDk7^NNnhF* z^A730kH;FF*6N~+WGEHXDCK?I7xP)rdICpTv_ThT6hkSmiBcRW<2lOLB8obC`h`VL zirBThFSP$Biu1>qIm*P%!dTQOw;9U2^61Hqf;fLn9gcEXL{V|qU?7Twrf57u|0#8S zd0h7gipFu2cMs~t`L2nC;#bnO(90BE>mvGiWgBAimoalKpZU6TpL z_YF-H#Q8N)(vZXU7EdnN=OKLy5awi$TAl7PM!%(Cv=$AA7H zl!mi4QDE5Hw$6(o{Xf&i@fJAgl!t0!x(;UQT1%m5yDOH+C{A1d`D<}`-1bjeATt=EX|b^D&h zbrD6y7lYDZaZ|Ggd?~^BQiG3WOVPqQyA4;a5?`80=Qs}_F|oHMk_Oyhl|gzzFjzfB zgVnH<-mUgoE{w|81YR9*9ayg~(7z;uOS;=5k z?#wBz{fyqN_E)YGO4AjZC@@(6!&3ggd#gQ#9}(c6Qwl2G&w}fM1A1K{PixfPTC2z| zhK6z}oCL}`s0lr)^w7swGMOx;<7P~jwN^1%LJF55%RE%%e_5X;s9pt2W~y0In_Y?) zvWl}LY>M8k_F359fvXT54ows=7ASBP(~vWA>}nbRbH{&Hf_F}(RGWq@rcO)ble%`O z>%jWm$Ox93$|bODn%=GUS8g!Vuv`-bCr?_vo}FoU455o7gXY-H%8LgBH-ddmA*d|_ z6cp1yVd?94i`rYqOqL;N6Bk0?S9LAJO(x1pav{_)Gf_ea7pLVZ%a8GIZ8Nfn}Hu6sKi)di)1{{~x@~E3k=tUa#iDt(R)^ za*OHYLWNF#L=d9J!SuRgnY-e7y<6?Gycm@e1u73#8s#$|=!q0H7Q|UuM~%uoAUUU? ziqh+q*cgW^#+V4ScPMIfUv8g*z4UIizh0S88YgR_AYO4}ci28S+q*a5G>Y zxw>dE*y$9CT8WWcz*P93LcH%prBok6cF{PV3#CJEFT)l@SM(@@NY^i}S0SN9OZQPT z^{YOFi55bckCXh5FNmZ~2HCAbV(wCJ2h3g#^t7<#=_#e;l;M7)M>t)kJZALoE-cB( z^<8wsH2Jq!Ollp|P?VX5$!gP3+nr29MQoK2%93<1Lj!nBdXyU~E$jg53NQ`%_9rL8%NgNT*2hX?{uJ5VEYphM)YueN)o zQND|4ZFPS=7f9L&FGD1RL66c_yZB$P${c8-CJMs(=O^XRf#$+eD=+%b*T7AkNm86m z5=D6AyC^E94s!Q*v&#R-W#ThZ*ME95|0$L4GXGh}i%AwTnYHPu|I|Jk{PdLX(^I}U z+FS~jPWz}fet|z3cy{2SNYQa{Tl zk7J4$7Qj@~qw=3KvPv@lSxyrL{_{hm!kqq7SWEvqJB|dBtF)#JN84I?xBMJ>TAv)b zT7gZz#)jxxA7`Xk&?u}Uvbo=p=~TIUt^Zb~QT|0JLviaBF7>k_ zih5ZFg~qaMyj<%3MW8!xLw7QtxyDg$4-&?rMtO#zC}J-=3NjSWT;M3p5(E?#MFwSt zf;p%9Z-b(ul%cqVVo2hP--seQ`&xBhC%zQObn@j8G8FfIDg&Ko8H#S$tq?L46X|XcA%G~3`Lk#%21pGl5@tYD6RVjjnN~YVvJ>hwu3Sh zK~bF2;bV*F9QCa`i%}|FKglWOC|C@qBfyds+@e~~nrchSTP3&lBdU(7+i4)#$vCy5 zm1iOtr4Ydmh+qqux(+WG3@4x>ea7))zI5DIY3khbXH_7Sh_^LSVCqI-0D`G|depa{ zPl$IE+WkXTVI7+^LnC5#Lqr(PYdTNt(k&6mgKbIHl-L3BLu{$O$tnH)@CKaGN=Z!h ztL6OAfA*-av*Nc475qkORr>~+14Avky`~@jOf5B-e(2`ik8;ZRpEAD;LT;}km%{3Ar68rvOpa1$iZB*6N+m7#ZAU?n(gvR6pJ zZ-SzB9ObV$2Av=!^HbtWquoxv97d3G#oLF15!yznSXmaN%%#^UNTKn0zs>J^4x<;9 zRMyX`%BXxn;ML*6QI*~Tx-SJO_4aXOLYfGq>@^_sGd9MviZS{E4WVJ_y|s{QCzOiw z4TkD2{843rN@spfC=G9Fq98~q+7VfxoOV%z{s!by8#Pm?MYW|O9`Jp9ebk6&{@|ID z^GX@k&hln5OjF44?Wil&DpHiwXaVQ^VW2qA7AZ6pXN$fd&PUXfbG}+dhx}fc1 zt&uh7h8>?7mN0Z~vD6=icZ~n@hfjA-$Tw$6%XVYUn*&O9>GExILEGF~-tWKJKjNqP zV}kZ934CSc`~63jjs0TCN8{36{epJhaqm50U-NSPKA2k3uW#U>M)}P?ckW*Mrd#lk zqYL|wZ&dnHlbOGbxUp<>;qzzi4R6`8-_%ttYOWdAD{I&G^zJQuDi*xv`bF6-B@Sin z{wVCXtV3DDdd{>BmFQkEZd}CFFUNJ-33}V<&>dr^J86P{u_l?LCcaTQWn<5u3%)$~ z!{a0W`sV1Ho9iCkwzkx-nX&C(_o(yTso?<&PX!%cefRf!bzf|8{!Gh@zo&g|e%7;Z zkJ4X_+E&c3ePCPH%)o=`b6=YAXT+7xBSticeCx3P*4HXukDs>b$ItQyxzA5%ai`#) z?h8kjn{lw&?hTyqZWV8@IAaSc67pXE@vXXk_1^cR*8aFGv+R%Ce}B1q^1;z_eoqTo zo|1oghtk`d1g|W#zQJ0TddCViZ&YaO=9p8Te)8St1CH8;HZAmPnITPIKnplWYd%sb zvE?3OcP-J|cSoF?B;v=#EfU?2tJ8Dz?P4Q0osVmE<9iqKd*5wF=6wwMAmoP?t~7Y@ z{LCA#eVg>6vDl={NcR_tj(o29shLgM&a+%wcd3xE&7sa)zG;8z3%~BGhaBkitlOV| zz4^}EI#chSN#5gEJoZXRn^}L1OuzoWenmd1-+I;aB@>_9Hs!qx%jED4!@k>cx@L(h zwpH)nO5We~Mjy+w2TJWP9Mo<|$dpc_Ccj?YvT$AV-Mb4{SX@29v!ct0E|YJxZoRMi zh_)}bIa#ZA!;RkGKAZ7ZmuoA{#qJ#%5d3SW?;9<9Z{M^JLyD{lzIx-W5#>J_)4X-U z$D3CqT>2n3=}yt5bLNz)uFd&=29ZBqSfgn!z#d5xOg@yX`@PHUP>MP>}N;nTnsB2YmM6)_UzG` z`>IdsQsUWLrLsPCE4ahInf134$9+?0H}1N^G}UY8#u7_bmpS&l$*p;TqZ#IJT(16b zbZlRbX+=J9v1Pbk{%dLS?Lw#G4z$X@s+D`^x}n?7``_tz)pWgA)ghCQ);RY=*u3=3 zwa@$SSj3xg=A4B!Bq*0>jB!KLV zC-b?P`u?LD^B<{d|51A{`H%3c+<&CMV=$D-#~-EV&Q~z=OY$GlQkxbQqtxEZ{0BUD zi`jN!jQG2|HZk0+iwzRB>>|e@nD)>dCo3hMn3$Cm_fLtnO4}mAbOKQtFisOA7m?D) zNH{a}aAa*GX*^16BjN1J9!JqXQp@Z}IK^BAxv(yC* z1r2c+Zv{%7FlBoYYN8XYRA|s zl4+18OUdN;+Ty&>@0xX~afGf?e%Z0POQk$dG!;z&=>H%Mr%V;0qoH=@S1j~DB@Z3z zt}Gl?`66uqS9qPvv^ydj9h5Z;<)kJGPF_^7FWVAC6m>9Mlj+xBxn@+p7!iy8&i7J2SuO%yEtLf3GVfg*~EF9riqBpelECb8}+@CAqdLD3A3@^)_* zoyFgPk%Y3NfRisru=u;b_!P}ITKvsvD_i_6q1PRYzoaQHdKv0^jLQB3l}CpCK5_`q zPt)S>)G%rB_YIJ;m)(F-Y>d(|KR(9OKpRSnzhhlFrF~v@(aBH`7)>bK6BLwk6u6MG zaAW_f3^gfQI!JahPOWJ5nFt0dL@+e!{*sr;9RBh@&bZ6PT@4dpV(C$uL-+J7WCD<( z7H?}LL2?wB!-!91<}i7p^CVKh6#Myj50AHDK!k7kmb$o*E6%*mHo|rX0s38 z;gdQ%Da|^}Cn>dBEzewUM(Jo3_$Y~A$7dbM$H$xE46&GkEkRN)*6}S*qLHG09+>6g zA3C+3qpWdGn{YnbhJj;;ArCa+%-u}`N7Ti8e(LnTB*VU_gm4Y7%J&Z#!#rYHxi4Gt z^041CHn%TUW%rKW+_2{_ql+?@p_I`?DGrog9Hq60qINRA%*hOpJDH5la5Aq@OqAJx zqb&0l#-c{?(~1`CD2RzN%^c;2ngWW7F9u~y#3F?yuYfPuk_AQ2bCl1*^=_~pYa+g^ z?%?FhQN%>QuDVUJ55+_;V+%mowckvyJ7S^=gY<5&&I({u_7Qk>)F-v+t3ba)F;RyD zQcRQqB&TavQ99Pl#u%p<;~k()rb2h>1F%$XQI3 z=Xzh#6zT=ioeWefoP~)ZMj?vnQNONUMzPTVkWMJq-gnjMeVG+VD3LuiQ4kxYFUYOf zC|7!428BNDeaRCu>Krb$Ulg+{#WCxptPp)lD|P$yA{9?EkL*GjF-Jz+<9{;nS8Y6U zUjDy3qCmD}=u*KVsZF|tne-UBNngFpC$;4)>hak4EpCyjuh2yaWGGfm6!gAq{3b^k zBBH3RBMc`}6n*7(t>r9O$K~YI;|_6@daH!7s8NEo+?^c-PCX7AQpA@rB8rMH2BlMH zPHOdX@MSjR%RG(}@r|BSPnt!1*>u&(mt*LOQ+{DjQbKa-^InoU^Mn%s_WDn zFe3I#sK=YfV)SLwY2-r$tJaoyE` zv^jf}xpKqlq&WHA6Uh}Ib$+)R6Cc&qf+e#i)t5@ zsP;+AxzsVVt9{e-M}3re4CS6YswI>*?^9>Y7TBny`Mt2M?pWSrD1T_8pkru@HXLP* zh@yxO4YjjyBnGP^Ma19ceOQT-v^pAb&mLuV5XPcLiDoEW<+jF-g4NN8TO6gAh@#>y z>=7)Iuno+)TM~RhZ8RuCi$~(is=jVI+rYyo5XzU*%HudzNB{e@GbS!u9lcaWwmLdO zuRB&p9c*rT+rUj2mF)y7kH@dfmjU!Hv^wg#N?IK)1yc5UH2g&x<5wk|vg2dy0<>|o zI_fx`Q`)4To1q#CJLplaj$ED@K9NycT@wYXqfOZQ&T$Peau&H(0<7+;BJN*4-V)#* zV40KgYDI0zMA$(g!g106`>YWysuIU@#-9gD_9ei>ClTXUKQCweXN?@wuU!$o--oZ4G)L zd)`ZqsF&z78|{-<oUUkdK6?3uD=UCe1qAX8oxG$^qHm;wcS`Fq<5^yuKLl=+VTC z(Zft1OzrOZ5l)kDi~?KCv}s~no!G}gzk-2$yl4^PsGGhCKK@bU`;KQY)Zv&_W#lXn zi@z9dE%39pny0qu4cl$@FWmIkh^ChM{SKAg@nMJe>$#2G>~4N3zTUh=txmT5GNNS{ zug=TsAN%X~v1@PL?ez7Aue-idBjAMbQ}17DKEJ!#K5xUULwipC?(*sQ#C$)kJzV2{ zy{|)Se0;Ko?=yWiM7N&dQgD3vecL8SP5-Vz$=C}?4ePBd|9*u@yJ{EuGxXx?1!_ko z?|=XE#Iq~ME%{*edqsYj758D{wjrbYtu4|1>)~Jc&aBiuv`g<(t!5us?>W=*{VOMY zH%5=R>GhW9ytDU9j;}dyY@&f-KJkW+S@o`dQ4cg{3nOqKY3|pqwi|nn7`syQ5$ITH3U9 znZn=ha|v2dc<{zjm6vbuw^!2^{H@Zp&&DiRw*0y6(Oo~tXjP-Y@T(gSzv#2|qY9f> z6kFT)Uh9!F@06`^wb!88zMr@5c4FeqKd$VlLSbrUSDuMhTb8mQoBk9tTx&>wJ2TN_ zXWY4+QA`mLP;F&IK-f+RkZcYB$>!()k~riRhXay7TQm+Qf+Rqby`K;44{*u;JOEd2 zbwu3LTDVZC2jNn1@u$B3XvX|Ud$s>qbBFv#e{@qLlnMRa48Ma&dQ^`4%J9kLKfY)q z_aAHSF#iF^{YNEyim9^P`iV4Br))vGc0;F6BcCE_6DZ1)>2vY)-kH>9Y$!2-e1qg?5`)XZu@C=E4~5-3#UyGNGewHVta z8|_U}AJkOraqAIE+j753mn88ec<7XbYV9%ne=H&|BA=39e-*#dbu5*jHiJze zl(QvuQC?ywUYaN<&25H=oKSuhQPe?dOQscVoTa#U&*BxuJ<1e`Dt;ujM6zkU}0+lCRsswlf{TQvu>hF-&WPT|Ezf_c- zh+t#vp%~*apy9IF(tB$!<&^FL%6W{B9;InF96Aw6C|#FnqQJEG&&=75)jzvQg{?9w zDW&ESq^=i4#;FzUStf$!3K0~F`lZYy@`;U)bH?4goL{drw>_bR|E`GwBNo_IX2fz* znw$H^%k;D~H#ycCM6Zs2l2xl{IPqwO#*b3Ut<_#6z+N}2T`f%QMgD$g zlLwUMZoZOVCnh=(#XMp+xi2d-$)!q2cPc?G_X#)b#j|u#q8Un8O%#;omiw5am_-z| zlj*>mOjEgg2&8S8r4Yr2=+oi21nq9tZIDh8)`YPI zq3C0sXjeXDsdzO-@gXFa_2(CR&F@*e~%-!nSgJa#EO4 zdT$O`D&^JHxxJ^m2IAI;RtngYY@|lsOvX89rVQIIlx2LnYw&c};2+vGAj|(MEdRG~ z?(`^Ad#sbyAuCz^eF{NQ2?&-h;SdD(#N^yY?Qm?3S2{ewy!R#+?%2 zi^k>6d_PZ?4H+i{gsQc}ZFY1&qMSSy4)+W7u9Hd?MB8TafN-Ba${4nGkPc0{moVNz+&JILay!MG-Bdq^Tz(tAU&>A6Jm& zPfNwCNQ@Ij=2wNWs8OD0C}El?SSns^$WbPUC@OIqluJcUk$4h6g^#fu&?0H6SgjYQ^mCwW$N1<`rO(%vU(QgvD=6hC zSSm(#LAh(wHcdM>HTtDmlj35MhdFYN|6KcJK0&@0*`rn`D`Rw^g3*y+G@U}qiu{1H z=kWIs7mOS|${FiYKP!e%8v1LZARLIB|8NVzfG~?CXQw&-#txt9$zOs@>e^wauDX82 z6z#G?(Uv#Jibf$=Ib)R}Tps=R>Y}V*D3>%*u-{iDouiBrQPjE-%XA|^F4gEp(2bAC zU`3#qg(ylrD2zpof?N!;K8mSqM}fhLc#ETaE25~Tu|a9D_%!|qd}+-1lEzW$pVKo~ z%jyzeCQH-!Gz`|op>NZiCxf*V**fXi`AM8AlML4LMLqO#TLT!Cbp>9Xe&%HC382p> zgEe%#WUy8M$(fo_QM#-i8{;6S?D!bx1MMUktkk}o(r1f#82m9C=}{Ui7w={D31!k? zO%xccQ}^+qXFGM)FjtRZi!ZNVbxK;>AN+GlL9Mm%OrAapd7f-{ao8NPi_=haL?~{> zJ#;QXUgpE3a853TVRM))A%!UGqR!~@)+s$EF+MdFiJqL^J3_=12QfM< z8OT^tU(J%?Rfr{1*K?KxSv(B&p_KHfTt(%qL4?v!bT~9oz*wNbRs2*`a21boZ&yw| zM;q)A@=Tb@V?VI;!;y7U^*{PM7j=;YmVtLp38+njFEb4T?p7dmr&y`jR3>OYlBe9~P)3cMq6MI+2wgGMe>q1PQ@xv(b*d60j&FaqpkCC7s1>nsWr4~c;_sC10Q4Iy zYQ#1i#iN8&w!OeF6{X9=*%+TwjPVB0Iv(egW*wBh$cm$Kbl*?zR8-l9 zSrZ2**w`&Y_I}2G-in%~wD`0HTO@_QMti-NacF$n0Ar#pr9aN`B-+xf^t#kqkbeNR zU^?X}qygg~J00&gglT|LtpTZ>NdsQ_nQOqumkR0?OAjTKh8lVV6nMYBD`npAA&RAQ z(*fF&`lk&DGd_`GX_7?s%Yr1-MlgyQL8&l^&7#!K@psC!r}#K=EtiDpx-LpILy-!D zL=+@X64!8)W+IB(E)3H$?PcINQoE2FeEBj*sd7^oiyCD(L#ZU!EjtR_;LB$@N`i=@ z;)_A)202Atz?Tk;FJEz#R}G#zZm>sx;>$6q=;jREV6TZ-^>H^iZ?DV^9;4SCZm^(_ zr=A-e&8U1vpz_RsvV&Bj2nRVJGntOxN6d) z+dw&w@zJBS#)d;Z;tAzwh9(NEabx7*|5bgAiR41Q0^`(*Hin6ytU?68x9c@2fs9xc zoCqP5d1DJ1j7aO#qYUBQOJpG}k3Pm?)`SGfQDDSMye2bZIVhHX0>;baZx*fsQdbq( zi_WE+x4pY`ZiXB3kR^z>qJGEM#N17cHE9sslhs*tOu3lwD3q%k(T|8yF%jM-Uw?0- z&0f+J;f*W2v%6_;XoAf1+B*iD{n0MiKiDsMXo66~oa=Ew?znXF#VV$$axsd9l+x!r z%9kHwk+j9)Yw-^X4Goe41;@A80}idKS<~OHn#K19SVByp!FD7?l`X=QM=lM1^vFoK z{_c_Li-#tJrCJkh4O5wbQf#To=_#?c2=4)DX@kT3{4~QlKSf-Zqk?c*^*EwE=xi8i z7_APRUq_c#N>jQTA zWQ(J5J|J}Lmr+R1T@7UJs=nOOOiCD#JoG%)r=xz|$E|MliMl9*7>acB7jt@cl;S{v zVY%kWRp|@pIx!@=hmr&mv$+sN9HrKJE78^OglHztHQBfMw*t zLV5wqL`J2Tz^k*PW6Qe$y)gwWtCvUt%RV4wAFyovf{jti1M)F823kG}SUyJOH_2|y zp+Y+A_KjZ>O41Dlr5ptT%R3Db<>ZBRyCvw!t=ngVWlqMc6&1ziShp8bh%jHfgep{x zk+lP>I%2%#a3RBVtl8;NMv5-uH-5z!KS9p;D*jA-v~IuoUs|^->~?lu$5A4SI*Gr( zHg5v?=ty}olX6kDl#NqJ%G)b)DbE>Q*zf}+Oph|Gb=jBoKSGJNX`&#kjSqXcu+|c0 z3FPGsk5=byk4P!NG?`ibYG~r5-exU!w99LrxWEIe3&(2B-E7ouya_!N)-#IT!OTeDAJ8t zA_}sEQx0*Ie0KyCwQju1bfbV=szaMYH;Pfv{Q=S}6ooYUT^D7#)>O8mAn0CtkE2W% zQB-^}D1&ZJQ8DnP1>?&>j`EtjmyW@*ZXv$xUFV#}=V7qAe7)OYuwqe2EEudpqQP2K z&`Zx?z0PL9p8~JWcWp3oI?(r!!8-n(WU%f7DSHjDZe?TKs~F=RpuI*0>+oVbrJi0o zC05q&2xZS9O%xcchK&(0{-;ZFM$o#Qsnag`q+Z{?YlBfZ&t1;A?=+V{)tX*9 zC05oQ%rqR(L_u{=z8|wQ4Y{ycZVJG0SV#E@-z-l|Pe_X&Y)wh?>zAC8=tFt32F94= z^rSdz%J2wjx^y1UGPMu>pVq?G2fuC?XYJUdPj&RrPftTyKYoP0fUc1>H9pqZqg%%` zYd1?!T=T9Y;u=OoI9lx^thWtI^BbICjYl;i55PmfKAmYWN6XTWn%u6-hL$u9GD~qG z90CerOZF(&=7x{0-!oA*kqco%OD0MP;q5bd$}*hSXUSZ~lKXPYz*w@ESaKafCRv7! zN4@k)tmY9)^tYNQuncXmCU{z6m6B>pi(q>*IoaYtzS!6}#YU|{NdOg33!1GqFFTn| z?ojCD-mVQsZ=@2d9mp3EO3yO_irRC&$&}#_xfn-p#QfL?WyrkNk)w1!uZ!{)L%FMo zf~fIYOOEo9h@zs%po|)s|J|?;6m6mss~tBu%7vSHQDerR#Fv#XI{9(|QRA#$7aURJ z#`?0TvAh^HUanF^FKS%CsJtmqd117haUIYvQq-6@LW&yO8H-3(NkwVKUu=xC6=S>z zwDlA<#&_qG-UkX+<=N~lk7NA$L^_(mDdi}LSC+o>FWg)Htg65`wYt8`L~vUng7xiY z^`1et>qP{5SD^IMd<}+Mh;ZmpCgEH!X1zx!k>aU95+p}~?YiGXX1nsn-g0o>+gg73 z&0I&XtX$h?X8UMtQx$niYbRS8+r6_Q;z)CD-BFD4$h*Z1Td|*N_7A~6pV`MO?DGW$ z1^Ne}IhNM@`TnbHn=v^h(i)c-pCoM*JGLtS&SveS?6b;-^|*IG!Ic0r?vPb{i9Oq| zwHfZ8?Pj>nb}5;F`hEr-3p~z+S>QM17P$9}(Qeg8!q@!V>o7MYX#u(@`54OUnkdDA zg3Jw#WsZoVHfjr*QM)BKYSl-=sLdoFoUx0ec!UUJQKKx<@=kUX_~4AqcGDOtpr|~P zLFt2;Pw71qd>O^~g3Jw3H04=?PUdFoLE_6G>88?)@WJ0#I16LUQq8XRgs@va4^KnB zQ-Sn4rJ4yjX*BYd_?aH1={D5QTFR)rEb!{0hey~-pr0cj?Af0CU_x34BeMJWyi;O4rr^$2j_AUDm}`Tfs6mv!-O*MOHCB`;C{EVTb?PZQF3Lq z7M!P6YsAe|aMLLhwGMy4q${4=AnC4Z_kG37|?m(!$ioC%dJoW1-t5K6P+%YCJ#TC9HCjP>mAdZTAIzVh320`rFvC zxwMpYTTTzl5jmAWjt)~kWK6lLPq8wu=Qcjy$9Xkqg{Vp9iN?Q>{Jx`W1l~7p01|LBs(#T^}8OKpB7ZApxM)`=L zT#~DV9R(hv$}o-+;vt}@_+n6c3{FuR__BiW1s0k3a;cjnT4e_P?CMS1)gva=6 z2k77)qw{^)s;wct?(i6Qqg?bn#!5!zS%JzQ3$|$45a{E{W3jd6TtwDHBFlG&BT$cm+47J=0>`_`Uw{lsqP^btNm)|5vjsgqj4Z9~~obt%3Ef}pK z9F8P!6a?qm+RL%Hd-!GHlUcPXy3p#D*~%6u54|{RW=%-7+1DrWsZA4OtSSAId6DPe ztb%on%TY%Bc#Bg*Oo0Iw@J0D8ifSx-&FbU*Zk?s!16F!o2lGkBN9CW&Y-0BIpxoYm z?^m!z+kp1PD$I_o#*I&hqq-=Y8H%(G!~BySr8rQ$IZBd_9OcYOVJvEt&$K+69R+^7_ct7+a@IU}fd- z+iQX3bU!Le$Fbd;Pri3*03YLWpe-T4ePAD_w7Z9^0ef=nQLQTWj$`@uPrNlz;J5v@ zD*SdTD#mU9T+1e{o4E(3QWp;|PjcBwpw`JVwT{6hqekeYg8NIJeWw>YiJ0lZc{Zbg zt6o>%wS*Eb9^fV!I#FsN!h9H){V3Ir@*TsV5G*Giv7zr1SnHSqf*;U(Ha#>!x0mysD0QE=7{+2+~P<`pq(Tw zmS9GO`lH=92~f=v@*i))@(;z5iyq}-%_TnTYqI>&bLIY{_;bvEV6j$d6EeJvu@;A7 zC>R?MA)7b#%mMW*miqR2qr>RDr+Q|)W@_RfAY@#m-)>qal`#?$ptb~BW1YLpUhQj5>e;tYnnPzkR_u6n&#*Rhb| zpj;(Nyy;Mhg;(vpSPAM6KslomHCcPufWFfh5E{c^Kz;att~b_2*~?J2YNDVQ>u0?= zN^#si?;MLdQd-Z*I;tRR0mx#f^M5YFQD!#RML{YX@zxPd6vXsDBlAssxg?^f_+n7T z^eoct)uq{}dEhp1uqvB_0$T_rdY2{&jQG}O4;#Mw`~QFJ#Y*zX1Sg&HP^)V- zrmm?9McYzrkN0<0vJ)1QfMyV4(`#*ejQ+_jk~Z zt(1g#3&mPQQSsusC@7IvPh~p_4AxuG9Hp;_qT-7|X|TAd*$TdFV|*#gQ7Tq;)7d-- z??ZgKQ_abjONREn7Vm|2a)V|1LT0eQCCOk_Zi5+spR+Mo-!m$|6L@tgsL6nZKyOY4 z>+&hdU?l-5dkqNh%f={eO7bx_2ihVsSU+N^Ok6M0)=lT2K)97qZZ}X+%28mjI`qhP zyE#`jnDbUSF!8Sj_~(>@TK9J{dG1iib5XCw`x=s6ba|IcVKYz=u4GdV93I1@@R3{! z`x-J?LJF%8{64-7=D*c(kyx@{pC!8(OSWsU1XBQM5I&R(VgI*Gln}y4ck+~FIH1oGH2VNcw#qF7vE%?w@!ie(b0KHRy>0G#2L+H_ zhh>ecd=j@gbH}w!jqiaga7ZnSjoKnu}jcwwR!2s%!|KVCl9m;YBKN;9TYf$ zR6e1U+AW}{=f{4g44dU*9C!%IKnH0u?+@T8QTugK4ltBWnka}G@7ovd(?t{&MFwTm z$YQAjEkV&?Iw)|W03S=yGkQ06`_CZ0xJaE&E+c9zb#f8hK3nG2K&&7gFTF~p!@10j zERtU@YCOWITq{s{d9YjRL7*?DsBvCpDQbKJNKUJyqSSvTjWM5_Q+9lei-C5CqQ*C1 z)Jb*$Me`fZV|?_ewyqBOzs@L?+7OB;h*u6ZR%~5Sg)~mC`@!QDD1D_{nV714~YF*KFB4 zXg)nCK<&VWJmA*uCsT4F7Jqa`RcN*~ArDvj?&#j;+~4X#+gs>2COd~f+UAQRo52B& zB6`L9<>wIc(qRGn(1WmvBvqr>_XD+xQFJSGbjnA_ko*i2;4~y^3;YJN!1?4B_*BQi zZbN5KLHv{v+>q26u8T5@p}1(G;Gn>i;T)xfh@v)X$C*+4T5i;a&VW(tL_YYV7dT3p z(ZX2NC?~YMlN|*<_#?X~PZd#Ad@(3}F!L#=I)N`Zv;c~*wNKn_K3ne=omL}=FF#8+ zL|=gqes@W2a$}Tg?m1uPgFDjej#Tsg&AQiq{lKVPE%55fh_H^MfL@1u@K106j#P8M zEdsw(l(rhl#wa!U;A5-#Om;!v9$y~EZhRl*pnz0DnxnG_Hhz0gPLClxG`hW-g7?ER zSy+q9VAkR?B+O#=4Gatj2ts$h2eZz{$IFw%n!Dw_r@ZmZ3=3XtFtHN5LM(scsx)yojQn|CrxMO(?8;r(wO`T?+4WH}j9l z93`&3Fcvk+1%|Rpt`c?>c)~x%aFo>|ii$4=r6=SR%>-YDGrn}?D4+NC(AmTIIg|L( za;B5JSK$e*Zl93HBTsn0h0GIToh*66rZ4N>C-*a>@oTE4q-dhRf=z@v3l=PI ztVTn`KCMp=K=`5Sy4mc5T!v5T@T4^BFrTDU^k2_ot5HY&|D!AkwGO-^t(#4hU|*Z* zE=(W$SqHYdG>4k~gDleO((x@1y}WcR#vl23$zwcZ|DbjA1D3+U=Y<-Uod7fbj)cM4~9IfZm-b z>sYEcEz`-DYX|^-=>X5c1AveF$^rnS9i#xDU}4=mQL-47?+LuR)~A=-SfF2~0AQj0 zBn6GJ8<3oSOr-(qUMJb5OUV#E#>+sz9sf^|IE3^X$Ebo_Z%KZW2lZ@%T2$(224i zbMIk%e_$ATO*L=Z8F##iPTE zH*-R=sd=~f`+2sbP`*324i{us^RE2dqWqq`!4>r(6!IU- zVfm*bK}nBt)#oxc3*I>+e{>tU|M0Xh|AAFsIuZl^{+2)!juOZ>8W?V0%c+dX5W@8 zN}-n>ijsWTe!haBegKp+W>J$hhYjdYjR8$(144-~p?p0`7iBI(xvz!BP+#3|pQ>rf(n}Jf{$sZ^@k`s?a{& zNdGRQa*jadb(bN)#(q$=rgJzP+42{YL*gXv^TLC_OsY&h78OUeAqzGh#O z*;ux(*YWavl&Uy;d5H;ObyxIu26$|&ZE%`%-H`oqK{|Py<5svMYb6h=6;_KP z$6BL_lOKbVI_kQSDVo&efhpSfIxa(s-=rM;C-u2J4j0x%*~Cz!CJ!PC_9i~5$5Aee zC~Dof&vZjP`iMzb{3djxE~O@R_v9$2iwR>iN)2OBI- zQC*DZ7UK(y3!!9I(!2ev{yyT1`zq%&&V<40b_9Dc++caZ9S8=?Os~@}Jt0?Wt#|v` zjeLyC>B0=i^r=>59?&n4!K$@dGFZt#%3cHN?`LD&q8Q@^py7;S>Alrn2KNl@Y9eh^f;?xjG%Q`BXC^YAa`~yn`#{^8*U$oUf>Vn3)FY5HvFlb`+HMKf5nG z)9@d$3@Korj%CQtrh&rJ8($mL?Ks;44Tm8hQI?6g0A3CjuFO)Km!nK4 zH^|M)@rypys_vxo6=hCyF@7SVs6A&vrVLZ%VywCo^W#T~8p9$v%1aG|v8Yiz8Oke~ zD2N)vumB{Aj*BQNiVVtSE}vyTf}&m6&}v`i6h|4~Qt!UOb&T zr)BQ^G+ETxlwNm4jZ4z>?i;*Ogi-mTKxI~B`98gX&h8r=5G+NF_kiS_f+|YaMX@n< zbIOj7aTL&Cl}hi8dxlf`c6wn0x{R_%8LzmQ)KoUryOA&-6(jjFxJrEKk zAX21-UekbJnkfPz5J3TzryvMVMT%la5KvLN6h$l)MNvQnK?PAr>?rzwXXci^n!4Z7K%BwJ@;~%Xt@-NHS$0pQ z@TXGrPxbR(*vS1;F8(h3gPy8`u~d<0ga;OVowx%3RfxrdbJ7x#B`7ujj$nM^=CrT2 z!%-t~@>0*Imk;T(J^HnfxiikJJ=Le()9?Howxgxjy6Sf{Ui#gzgChs*8BjYlJ?*X6 zMn9T3zkcK`9fCYUZkxNzKef)x)yrRU4T?!SS@*-i+uEHO9Xo#Bu7J+D1=D-As@}jXY z9BA;=J^AArtoU^`lcMwi*ucCX^Nn{cSEsZ0^hqXb(#ixb+(lBfCkvl>6m~ifBJ$K~0q> zX8T!-EfRx!G&=RRqMnUtkxc5%d9ocSHuf`-*-vekg4xfWjTmRalb?}Ny?mh->Ah?A zGyR(VRQ(*i1v7d&WL6;M_*}D}tdk~Pr6EQ8p}lIT%~Zn-z2zg-&>Q{eahPBmR}Etp z1xU+aJLzMxpAQ$qH7N2SWF{2MC zL(%tVj?!_JU8~4F-w<8KKCaTG7#WJEoEstYEJLyOcU^`8zNMC-7`oQ3!FciYY?c!R zS{1jEYU}{|Cfe8fVwRSncos;iF*nV0&$n!hS}QF+#!W!mNg0a6>3pW`*9B-EuK~p) zXwNA^8S|WBrW^&q@U}0F4i*VoIn;kpd{f0;b%tSeDPLBQ>_l&nQe}u)fEzN_PByT1 z=WS29SfQX_;yFXk17#ZohCasZgtT_gX~xz-Jwse?GPZ&t4X`tIdA%!E2b!FEL8Dwu zU{>W7TdFi-RJqekm9QRUSblz0l6A9v>Lj1RO$Im1x2 zYFJEn$tXBa@i8_nX)MD<6!U^>%tXteOKbVu_EcC;vO7QJag^>Ygt3@WnlO|JdeM?m zV0V7X;3#WE6cb$}qut>%>Iu43VRY%lQM!fORUX>L7XR)4RjFG7yR*4{Q_>Wa8Gjyo z0m69->}hekL$rEqw3kigq2e3aEOUfemh@ZU_Y=?q$?mLma%4g}10+?=nP$3;NxJ;f?{o6fwck#d zFd;Z67yAl%spB&4NY7`_;TM(oDjy|fpR^XHiT`EEb_v+anCqA>1Z^ZP|lhEq| zkPvkArw$8p^8VCxOf)z$JTf|5D6XWu$4KUjy8_Ha*wI0`KWy13?9#^`fj^NJU8Lo= z6UQi&U?elkh5e#PS@30qj;VIJo z3cR3F+$w)O$`v7FxV&aAo8rHw1y>+>(Sm_={OV!jH>~AW=%! zJmW1~$Ve1q1abm~TQ-!F=^1i1_{RUdleK7nt4$aZ#7?1Gv)Cx>O z(Ad8)B`YJJVnZdKW7qZX$Vi_65Cv`u>C>Cuvh~M*VE(waZ^H9e@W<ApMCuRN2&L|FcvdPYlf0#iGpnE>+f)sJQ2kd?ZAp5+Hoy1(B=Jp zD;kYsba{iLWF7Oishro{lTf}bQc-@C`eZg;bAl3*ludQMrOT#%P2bZwW1{$5)$MA? z7K6K>m1s?WocdYhLZF|dZ0dt*ci3yete84fwqXUsbAtmGmR&< zrjJeKyzZ3=<(rd+nQ|0lQ=1I@H)KPK zKN2|MW@lBA-hoR*ACp_Ou{eZK+Ka6RH59l-iz6yvLe=Svu}!GTbkwdl@Ejyg8<(Cr z)rYZ^%@mTEfh>kaD$`fVWTH^`#RstJLuH6x)!$xB_^LhxN?cs@TK@I+l$ggd1EwT_ zg-F{?^3FPU=PvRCK@j^eZ~YQ;Bm&YuDQkCeNkidfWr)G}uNC?#X-gKyQWB05e{q*e zV7JLpd8oRKATJnb8(AykDN~lvE;ARXysQji^(DPj^_xPJH=0vsoERa7kXp|lCjai! zdib$TNkTFY1G9y~s%E?D#q8=ly+vI6@YK&b;I4hsyuCQ2N+?g{*`jzel)08DHG$HW zqih#Z%svsk0eA~z^rosq8<;9qsO0CDILfzo2xBp$V29T1bI2(0tbSg>QT!(gC?>i{ zM$d}*8*Ar-E^QfI+HjO<3+!qVuirs*xl_B@_7gm-9zEV94~jgiMNf*J)t{d9z2aGU zJ!)5zxEKZ(vm7DN>Zd{7Z~qeL+sU(v%+WlnK|oR+1k+5{?_^^B?>$%>4UO)R?4!u4EMM?6&8%k$;-G?zAAZBa(+gt zW5}R>1<8ZLBhzjkcxPItxVQjcUW6moA#SxAJgfptT_vDd;P6*q#b^U7j%D`fIe|Q^ zUK2P0eNnygG`uVNm^`c_#kg_@4@<1aNetyE@UZS`UlBd5$gmjgI8G8Qhb0}ad04TR z;$hvKms6OVkv&$(G+!RmWL2s6veweYMp85~TTx+Jm0*1j8s=(UjDw`Nm5d_l2IXZT zN{I0)Sqe6?t-O}sKk8NSl|IJCGkuKq!((@GG}(`Mv0oeP$Am|i6@vX} zfWz0~@rCHn$Y_^v1VD)c3_8JWAfgy*ZDk8TmDdY)Qe!VVAjwcprSu+i8JC#2xu$Zv ztbrbMSZH{R^=9}#^wt%fjuZjgNvBsOCIhSfG2|tJn00UoFTt`?{ZGb#_N5h6zE*~nDlN^aRQ+vw6R2i z-pxE*UVgh=J+NPL_Sp3NSVzhvcn<--J(J-=^vX%g7?Y8n7VAi&?H*USqf_Bn2Trkt zI-H@g_+NyJA7|~7lspz!m|f8>Y=%WfxPn82cv0_y^z4El1}!5yLW3ehguheH-V0xG z|DO)eWuzu&hD;2~%E?U4$<7WMT9%9|cLP$0Z;yiFD&I_N{bU$h0jY)+a3*_`Ultu9 zf4M8?TiZ>xDB%nx#S(=|6?Wk$2_lMFhB`4B8ldOCUlwHOd(wd)6mpcjZNga0C^s<_ zgLaTnpaVb1*=dP`<|a=ws4>hjw-%l&q%>Gvz4IfvH&r9cbA_LGgpGyuK3? z7UBW>@qY@mGt1h|j0?R5i6t&1f(v^{>&?&Rv}=&;XP2$$MkwtcbBD4EaxdI7su&0C zol#*fyKF_d9I$6X!ww;68}4*&WmupVbzwtZ7y048m6Ma~RL2N>LDlq!8NQ~S{rtid z0I?SsVb#ajVSM@MJ#G090~#K62GTE(nV^x4$;rz~raJ(E*r=kvMXH_75YQoi)7j_f z(9qCGh9Sr9GC2L-$qs&|7bH`zew1O-`XRY(XP_)9f|8*}(RlcI1)66m!?Nx@fOJHZ zD<;AfdNI8R@UqE)h5S@bU^=oH;m)w+RA)>|codGvhDU~m#ze)8!G?z`GK!Hz-8sUO z@^K6GE3x^5q17-AE-WlGDvBm8XGv1nky+f($jALDrJugmKQjM9X`>I959T6d?UBHWbb*R8Khqln-vf$TVqQ(m+Piwff}P>ErB zwOcaC2Lp8nfdHmcD;8uRtJw^izq_ZzK1P4nvqLcs&?Cr;xdp0pq|BN0}-DAT2o z$nfj(k~*7nin`Id6+NqSic{E8v8N$f?*00mH!-hHtAxb8x;;Y{-}D>h!N$m0i9hU7 zIy0312Coh%UHmB%F!)#Q-$ahF9ZMoZ(J}$*Sb%~I$>3i&N_P>(>}z$m@_4)WW39YP z(ZK`HaFh}DRZe>_lpgvOC!-)bc;E?+vQtDc`OK0rI^Z*U7jy|=borU1bem{b$h=7p zqD$>)mAbzoI#~SGo#bFsbnth&E;_(gtQH+qUu#>)yf>R=XJMAVMt;!yaiCA8=-^nO z79BhSB=>UEq$eArRtt-daWc>rQ*>|?VHMB5A8ZI6!#^Rgie+y zFb58#r7K<_aOFENkiaEe( zQIOX7v<636BchmPqaTxvL_JsgEQ4&+BgOS=0!PU{B8HoQ)U$w2>(6j$pln&O%UBy~laW?JwO8>3ccosaQ5pxs4^ ztNCI+)0TDpZCb_@9AqfLssxBAP+SQM%B;Aqw8H9$iK*l66=#B%X9+$`7-+e#``I zn_kfFn>xHsToEnIrmu2-G>o%F`GlcpN2Hjz$|z7+O<&6P_upiTGK`@Zma>cjg%uCkAcgg{h+?9PWK>vuM$0`W*H{X>i0JH)_4r)thAOV6a=Y4 zn(0a)xtDSFZLwCRsyyfA`Bu9l2nf)lGNYFNwRjXzg^3i z6hcW54USA$pukk*VuM@tZU0e~<1!YNsc$V z3!DQ%kNDfPj48g431uBi6qL|yv(}wz_#e>>i6EbqgQes?aDi`10U-` zRhcsCgMZ>l{+n9H5Cb}N6{;nge5~RJn0oOu$mHfW_ts)9V@eQo5y}t|#k@YoFkuMQ zv$58DSRY#;3}>%HP)I0V-G#B3QN}Wq5K9zzjn~!XDE&ng(~Kme*T{US8e1?UTr0hy zPYD(%jpfflb_H2`wIRBk9IVpiJiNx)Yt;Ol6ETz!<{|~8d5w<`w=Kwe8=GZIVV39f ze;D`-&{=+NZxzjJ{1!;6Rx-`BS6ep5+YDoz476t{%-!=fpXog#0;B}Qar80zD;}<1 z?Fi+>XiF6MD|KMJ-FS^jx(m+b(K5yrD&9P#8&$E6tisHK4BEd7p{>>++8u50NXaS8 zPD5$rI8A{jjk_g(6#iGxEqxUJ`qng7of`KPF77&m`83pHpr^_evlQcu32cRUj*0mD zZ078>tY^$gL>?r6F(U)Ca{&h4dL8K%L|pmeRXtbM-mCETJH#p4RD*)tO;+*B?Hdo$ z=CW1Id)LJ`jfwJpD2^6`^2bkVq%{?Bh73rmDph*EMwMPW@hL=#+@tcTN|MC>pVsB& zu$K*pi-TOKUZt002eS9coVd1GL5r}S&;mx1YUxKpb9M%&vH{Ipc&z7^qdvv~$v+WV z;t*!yr>D0d`NvwVSYoEwVHW1n{yQ(J?F_~#Ew$YaVT;A(EwPhT?9VWN0|EJXg}yf> zpyMCa-tG4#hD&vB>*+}#ZelXrmY`=VGfmUycDi+EsDGDV!yKonui^Byb}0Ri{T&KxIa)@ zcyRBL-#uQLp5^(?#*dp{XuBz<`RXIhgRdL4HKE7D9#yAbzkm0v__=Slubp}#yHnfE z*FW2E=KHPu{)#!dz^7HmoCD9kmUV2+-OoI~?#XIjEKGYLYxf;f#%!$BXVawh!Sinz z95Z0#(e8^r+~PYw{M|W+gSRK#SrV|=_pxIaYEN(R*qXn0r@q!?*YU&~!@l+T=#9DU zE>wFkp?Fs3qAjOKPn$66f~4nx*rGn9 z$kYLH6^2cHjh@DT@xDflbWL#7fo?Jjcifzf0Xstd6DRj>x}tCA%5zU18tIrZHzoE) z?;{g0962@rrng%bFIn|t$B#PBTJU4HIgie3@NU5q6KeHJIn=B;+-uW&ou<3y^sV1< z)`mU9PtJX0SkF|CbuZ62^<0;__59!5?-9AoKX-eb#w)jmR=(NiP?2j})!%OT{?)0= zUR*i!orHnU7j!pS}SJl|q`OhAc=l@c_`I!;7Eed|E$DqUami+PE z-X_#OsBtAuNV8_CPxQr~8q)Wj=%4CQ4$?DTT+bMmhzMxbG9q9X5s-8a07>WA0Gc%p z2PC_@;_mwikTm}QXnq^}fzxuZAFU1k0qn=?G2~c(>BH^EaiFa9l-S2;)jgN=3MTt; zyhLw5UXNk+16KXN_efHP+{()--yDH1#2iT%mNG}Z1{CM`xkxkx7s6dOT)p-aaVZ5Y za937z_PBhBm{p*N`yV~7ULj)8q!3FXhF)EW;9I~Qb;JG29cmCJd$tw-h3~ z(--1+vw$le?{Pm;-dd}wg#W`cgDZpUWp1rSE1<-F1>oc)RzNHB3fQokR>0ADd<9IK zC^Q-{_+cJF#W{qM5NL^l&@%ZsA+)?oNv8_YT8kJ`3{t8p$>5Ait$Kx!GC4U`uS_~}5Bpb$agf$)`!GkQaIZ9FLK#A5|CGp~Rh$7uz8h!ala z97kPOOvc;M#2JMHg*fA1zl9ZnGBsDd1tCjIyXiql3~O+G zHI3~Cmlx4Y7>j1KYp-l;XUFmUABNPU9)znOlZHyjK5*qolQ|W>dZN z^p`}Jo1auw`5)Nw%BYJCKz_3Gy=J;CuaWee8r2p{8Cpq-*EuW?vxBmuXER%F&S=M(A~~zsba_7g6)`2T znO^+r?Pjb6Q#^1Kp!|2dE`G!7)Z851h8HEP)$Ck|wzV*HNPXS*PEFnKumgY+)iO;~~V@ZAJ`J}_=h`)WHJ zH4-N;^?Z8ykS^P!UkjN#&#re{3X|*n6#61KODTR-I>v`@*i1Q+Xn zJ(YVDq*NJVHlQb%0bQ%tvJD4~t~c%nO688u;0!t6y_(b!!ayJ6?vh97>66TWYR#dT z0hLh@^=%C;qX8|4RBlDIpVfK@JTZtjGPzUOA~Co}<9^7@Xf%oz$&|UACyRix3;Qkf zG4iC+`qN)C``J{_*+!!nXTg)-v9EZ|ewr;I4q>QTxKd@!>Kb*hUTI&mpJXUBnuvDy zn*H=GeW3*f@w=rj+N*}COf}TkTRu_^O`xvNpSu(4*$)nSQfo4QWOstPa~B0 zmn>0WKda*~+5ewYwh`##e$`VH6i2wpP!PY;vF~nUq`zTCTDxP(%xjY$M%NoZm@*Ut zqd3>6i6~~XQp9AZuAb}T2SawwLUzthT*Og=8wq1Equk9<48E6)f(*q(WJ_p9cZnz_ zw?i^!DEN%dVn#zKLopDP zWhju|;~5G40D)G2PKxP~4)nVyLviLtj!a0`2MP2t&2)?} z8{-_q81Dkw7|Kw5E3ep9KxvPEr;l-_9zkRL2<6?GmM92@--k!6&rnbaAY;A$a`3L4 zVOU+tq0$O)9+w!hU1W$^fM+t+)-bSkOy=mvaf|T$InN_p^u`2B(l+pdK1PN}YsdIA zwrcIendm)!H)AUp(gL~S(v`kOy3)_%W+!K*qk~F-FU4yxw4_l2%4k@KDg~I2s$$Gk znZ>A5-At9mevB&pI92YS>B&xx(&Wkomq8w*?xtB9Wnq>VJX|B+19~{wo#9x-giJ_Bfut^I(@gVTU}HRE7-KllaP6h; zzQO){rgy#XDSe6Y(Z{6b4&=SaP&!$nK+P2(Q-5=pBu8lt(=UVNxyWl8Rz)0%Y7b++ zD%H$V_7J1LkAeR0gZ`hB8qDv+srJhCm9;}u1{AL&#R$+*#Ic_{lw)7%)L_LZ;uszg zdgY5a;`UxzR{AKqQ-h*@*@c;zr~)Pz_2V@O^>>Q!qhWzbXthYS{IGc%&YH(ZCDAp% z=-6-<+H0eKX=ETP%&45+#Y2JmwqnDnuh?**vDomy0ZCnhqRrj04UMkV4)Nwr*TVx@ zCvdGBnflvO`f2MQq$b(wllEP*bq`V>4D~soeV5xt+4MB;l#NGY6Vvlk^D=S^(3n!_ zhM@w|rK*(V?AwBK@{)sdCI%;`1{dB|+M+i%%PytolH5w2#zU^8zDm717JH)L9%yp^ z^n&52MK8lCtq0`Nj|`ROL$9zTnVXJhm=0YjWfG@0DUL*s*@zfds8+3CevR?%N*jR7 z{rad#XN(Jt?3Gz6?@`{*O7WMWSAa|`tG*#(NL)ZGujqLm*IaXR6xX6BNv)BCdnC9=R*ZgUBGy4Gtc;jeE zBF9}2PrJq|s?1-~xWyNmd!-Tiu59b|E8KS7YRXz~h~e48v&on!#$r@%UV1?RD-T<$ z&0yUq%{D_b0WHTB6y(N+gp^_dS`rWVQ}Qxan?{=LjPPSxmFh3;)uQkeSqgDr6T+a? z$A-8y6nK=|38n;O{mRx?GOp1UXe#s{3F$vI5{kaNrq##hq^ETxpGelNqOwl*l|K5vIVQpH64ad}CJGhE@b1w~>Y)zMD5JhfYj$Wm{lh@8&m zr6t@`Br*yViII!Ymr4@dugi@lI9lRXN^~O-XhN1`WFuQkvWnS&Z_PF!=cPV1VyZO5 zW*DKo*toKE4rzG$7;S*Z@#6Vp1LAMd+kl*x6dTY6JIRpmjO-jNOq5f1hRbtt!ygJF z?3Qo@*rU{VFO@w};;+k#J!tyimOIg5q=#Mn?*;DYDPmRYpE^RMr)3o6P-_sm3k66+ zM@D$UO4y#kF9P)etg?wf#>61_Zhq-vEj8}QNS{Dx@|&j+|LZrgm7>*5ioP*R(d}dV z)JV*&hn-bI+0xV&s~f*pX-OE}8)Ed&&kpC%c10C?{H3lG=r;}~69$aD#-Y_kKfH<##= zT1%zNU)TZY8Mc#>=(Gdy(sA7m0L~+7I{;rqRkqs!c$8+D@VhX}zovvVIR^Ayv;!~+ zyW7eRK-*}$neM%vjj_35jJtq_>nwHm6=I8$Bw!m*kdS5{(+dN z`#0$F2oh=3U<02tp=nNW)~E;4)FaaRqWJy$f4NG zRQB_euJxU!oJM|nK}bGz-%Gx+CAyOGM9oEKQGBTZYzH?vluPQc9B61QYnc*J-XLrZ zxXE*0T$)?orWMWu>yN0FGW&r|fbOs_YU}f|w{n)# zdrEdf>~BnC3V+dkm~-jtB$3n@L7iY;qGdB7f}fT09hpqyYRH*u8z zF0~y?Aw$tlrZeY>jpan2niz|`$-YuVFjgg+LCkGZ3ib{Y%?D_=W+$1v==L=6GJ%)R7_^I zis)QMhT*pOHRm!%IX_V@&gIQ{Ifc0y*<*zrx=XTt${JI=OuPN+%km;~%X6INC}$I| zOw#o3b%B4qv&d48_ zo|li4PQAyJgO|vBW<_AtSEixuJ4Hr$9rdA!B6xD3K&EqOb06try6qNr$(Z(H(?s`}YAI(cJyIEV9gLFvm zW^!`<9Vc+ehYD?|CjjFRy*wWh4Ljia1yV>^~@4CP}>6twKDww0q)ZY!Xe z{hnv6T+ocCA-C)&VaMwGH;V3O#0*Z;cl0-9dEi%lg zUG48Po?&#^!cm^ zz>|Qip{Wm&-`-+5r)0+c6j%9XUIA^{3Q(J3@Ku`n;GNq?qI`A(hmU+N=f-bsQQ9$-@%j}Y zqu?ft50d#bmL4LCS%y|I8TwYw{gE+{p@&EZHbZf$P{TzYu8U(fjY(PXhgC(t)Qx({y0(7FBE{z{iJ;ajs#EKLhP4(t%&U&S&~P zP`<|a=ws4>hkU9KN}De%QJ@3&<1yV$n0%ZtPdDDcRNTEQukYO5hpE(3pq*LPUSV7~ zZs5XGS*`wr2XX$K$G4nzDO0Q1Wh-7Kl=eaHP(obgrS&dlD=aF^b}MXreol6KN9wrb zJnRp}@%tmVpE)?FPjXtUBl(V;j5J3|Ue1L4^gKsO;n=b$H99p0p<%}?v;zfB{P(ax zHDXeZ4yaKZjuPlj6^+0bq3jv`*K~3rzc2+r>;*bBVL-#9&OrJF za$Phs>a>$gS9Sui8%BQ%MNQ+TJ2|Es5;399$k1^5l^kfu;PiVZeVvtFkW89>lws2P zA<>QIQRr`or>tWrf|8*}(RlcI44P*t!y;-~{vy|n;r}l!#SILCtzr|BxAEUqP*}nKS()=CY*K7U;gP8q*zq=3~kCJ`5G^rDuQZ5hW zC2wI-#$#osSGy&qo1?NiW#XO;;yKS!rAz#Ad6B{y<&wq2BwkU$I58R;5hfp@b4w9< z@gn_0<|8c3867=k3OnBR4Ft=*TklhqIdu=}-LXHP?)`TI6p{;!{^$&MOyZ{5qWChD z|Cmu4j;BPx+qZL+tQoc_ehft|@o|(n!88`2AVKnWE=QRzqL^JRbXF+xPB1vU4aZ}t zASrSF?0E-AX){Y0ix~yZEKokzFE|+m!NK`@9A$!tQhIQ}XY>qabQ`0KoUCc|NEMp| z$(z3tU2-2#sq2a0ASBL@{A&shRv=Ij5+r}p_eyYZ^P{%G!6r7#kA+!!7EY+t2I&42 z94x@!D+!YMKyoifZ~n%{xWq6OlGm#%n1Ief#7XHaI}^@f9}Q4IhoFF z0o#!IppVfSc(f}5~ z0DUnjuI-qmqPXS(NnMeqnRZ>w#&}-k9UtRjplu|@wFOxsqE|@es?s|cAAL-UYh%|Z z7|Iw+6ezAwk#8@f;=0lbD-jb@$zv8Lun0oA-$3Y%S)Ddvft)}0=^vatzXXC^?iJQs zgcARrB?=Ul#}C&OmZGq7Zxr}p7S|Iq1RJv4#!fN}OFRgj>fPU}BGF|~P|DdQWjn(e7NPBb zP(6{W+>M$f<#y0d<$_si-)H=M$H33IS#1wvWBL5K*BWsyR3BGWg3rf3MlMLJTh?H_ zRIA@{ULN*hyaX49pNaE#-~s7gSlb)U7%a%I4Dq4wzL#O(sribxT>C=G-}9&`eT-3*`X1{*0=u zDt(BRYG~TB7E=vc7|v9~VUB`=*Kbd7ryBl8G(#}RXR{0td=+^o7&QH$nOSX*+)K+~ z-7|a{d;k<1%}|>$;ey^09l4jW5==w0c{)G9HxZi{v5u~J8SNa-Xh*N)Jld3Z zVgo+b6&~v>qdxd2TVU>0h^a%Z$s}HlVwi8l`)ZPHRxfp!dYPe@$)o;vP8j?ql}~=? z9?r&3L=>~-{E!L54m}$OzX@T$QJV8-*PP%e-*y(pVn+Fhp=`HAf!Da^Fh_|>6i`ev zl8jy>Q*}oJFr)2MKKY>;93{S=uZ`EZvN_RZrrLn_s29A()qOiah?&>;5CUE;KX(B+ zEX`|NTjXmO<{o0R+#t--tB+szIH1Ro*Elj+^BO(wwwvk77Ho{UD)0ChmPp0GoWX^yCyHs7}&6Pv-f^|KR)boTv4{$j|YpF$?)cOUsikKt{$Ouc(yvr4rpM?5*N`m|;bO=$Vn z?xWKO-WhRgl>e|k-hVYe*}8hayFTCd>}y%a*4+Kf^I?5w<@9hJj6Csr$BiQz^w~6N zeenDn1`io9@@V%(AAZhy0S^n=p73ZWwk81_q(H}?GU#Nfr_(!4Je#l|;# zcbd=5%XjW*x^;Ezq18tR#p_8#O}Cx~iFnhkM!F77Dv9cvWg>3Q#(*86{)v-&H(k-U zbLF`w4~=xpn41!NqxX@C7ml2of79D7i?QG!RnWm2)ob(%NAPMVD;-ugvH4!VfN~3vx9ZF$V6C5cIua0 z*%0+IDI$)*?mrIOsMkmaP{5Z1&2JNHU`wFLJ7JT-KY;xh^at6GoYCBV`~s8*KnMC5 zt-3U2Wozae)Ysb&AdvllRsR!vcW#A-_c`;Hyrthkk#3df4HuJB@SI^gLAY_4;70QV z2lrtU^y3qJ`Eg&Z>x03}qR-h8LWzIX5(SY%NmC(mxJo$%gM)PSQVcB@3k)&%8d9s3 zZJ4ZN>SYDY@axf;QVhL6;SA}%%-5z-=*qUtk4&*dL3A5=tc-qSd1M?aq8phEa@wc? z_yJfYZ|LQ_N9U~7L(l~Vw^%Q5rW^;#X)lR=jA{UGWIJL?(QA6906}JLo!QsiNNzc= zxsj4|&5dMtJ+HZu*W5_NsFp;iKyKt8_Vxp(j$l7tH`|XiLND##f);Cp}eA(9T^4r>h!xg%Dp0rX-1MUU(K?( z7>8faRg|yp+?u1@+SE_#jzEk)Mn_NT@IoZfWp+=MF5bvjw;WW1eoUtv?(d|_SGS<= zl~WF@ZuPUvSAWfBDO7Aa>K%0=;{~ACqY!NHRvV40B^fJx#g(x=0QHC+r1lo&~ zukN*y&vZ3V+_(FCA(~KT4Y5Q)WEn z6*_JvXUK7&Y=gki$0T}dUx;B0`B2Z0!F3s1!H{_#mpjJLwfmDb%Eja-hW53k3bIQ@ z-U+KLsIrV%&ObR-W<6TXuHD}$LWv)5i2}niDE!}RSlBsi&|TXZP!2~puf`5%i^qhH z;byH9%e2mLgLp2BIx(JgaqlMU`kqT|QQ9+bvqs$XgOmvZqc86Jv!OKAxw7kWPkQ$(D z<%?^o+1Q=JeMFZ{YgM}V!0sHIjS+CWGYC3e*e4xL-z#=!)aTXg><)Igio6q^5@zXB zcyz*(Kwm?4=R;Um#qPWcB-K+i&9rbo8{;m+7}o%eU2@(#iqCY&7uBRMF+Td3)ZBr> z0}SPQOBATN@7^_Ba;96Gxc+Lq=6o5_TbHTb-|d*MN;R{Ton!QW#z6n4vX0$1jMU)i z1=yp4d<+7))C80P1?~Qd2_?4J5(R4T)GInQSeABw<>*?=m43rw$Wc~KZLv&sHsQi-FK*_#^lkP!SCha+)rmx#BPUYY3kCjQ4Jr#3Tr*X+j)h&I^txIch zrdVmEe~-ChY`L~K)27MlXqBN7ncR>GWGasqhe{PKMq<*$jlSHn;fNYea%$Aqrg zW~=)lvzI&c_VT`Ag-55bTd12K<@V#yNn86-!t94oo%JZZfGL9%E7ZQOB!QO~-G5WR zAg%jhy05UOkg81O&>$jcgBej??H#R_wb+~KS_{95(ZcT{wV{m|V_TvChx?uyHKE?y)Ua`eLlKp5uPal8G@MHD^@kekWwmq%Ok7_1eC>Tnb-%xDc zt`#1g{gK^1x3y7VAE(~b6 zXNI!e5(Qb+&uVg%%_54)YDvbdD$9r7H@xuZ?8b~P*bJc=4a6n_?c~wNlxyrTx|ry) zf1XO0DpH^9#!oyzKc?Nhn< z&L~L!k{(j&QWc(62S++NC*)aeP1AW+3+a2sv$}PQr;TS- z0?!V!6f+G~yB+qN5A-qQSsj)4t4RWW1d>WG(@c*t2}sf;fRAwu&=!zq^(pqN31#V4 zPu4>W#{tZq)zPC&0{WjZ%#@?Rvs#G*qPn8oZuYB{gwxgCw}x&MJ*?L;b(Mf7u`NN^ z09Gsz#FkjGAiG1;hU8)Wgu@y{z|U{2Y_oM;f)EB<*J9C04Fw+7QP92Od05fTaJ#K* znU4R@JgfJ#TD!8velxiECaOe?V_`%f+9F zjB$p=xNRz=jNh$asZ3ZKx$sl{@XN7%6;_U}eHElCHXoPeJLNOR=B4N76y~Mk?!3&~ z^ohw?xtZxKgpkv~A&R%hTOC&%wkkL`Aw6-r*x zDq$PFYCiz#Jw}@Uj%Ie<;g9}8&QsDdz3FV)u-oA(-Kc=_+YfU4;nlpdbT4cTeT)&h z=Y*2VWIsA~)?1+}-Ix`E{pg9U2khQ-D1Q>D7sWOC(?wX;0(@y?SKk>TU(dd3?-o1g zT|rvQ^G?y`UB=S_k!b$rMEf@uGaG^tEE>D!X(ZaWLMT<&$n0DG%0zpqS+so@(XQGX zpUA#tYg?4x7>ZUInt7~b+*+^=p`UeC?-GAP ziJxhS0vmAamlqvFMDu=Q{nPW%&n4E;DK{B?!a`iZu3)Fj(P}^n`l1xJMoFH$w6gUAH_zGW zx(pQOM3=EmoFBv1+oH5)C|b`yCblvPj`90!#!IzydWDcQe4du z8Pbe8ZxqI2MybY73`<%@f#Pa@oTEG}qL}C+Ni-v^U*l0eBNxWw&FCVhXx@FxPI1lr ziBMkDO2_))82=lSdy;}8#g%qMmlk=QzE>32=3-mLRg2BCNLT@W4VMgF2=rd0xP}hU z6juYdOzMg>&2%P9XuPPUwD=f%0S%_B?!JMzi%L}A0F-wyKKht8oHov6zTJxfsvLZ>TPwPd^)8c~mWy2*y9;b!b4~vUX-Vd}zVV>5Dnx`eAKw*Q|dae$69I|nY6jttJj^fu+7>gODuGLbOQJ}DL^Ek>75yiBOO$v+8=osj- zn9&7W;zXC1TwXSw*5XE_uoh~?`Te1=9!h?S);uY!sn6;Z)>isnQCJ%zu>$bl^f88Q zQoEAt*(@gtwDKRDaZ@nRSCGQ$xKmSDRiXrXnP$591~$e?s;c2*TmdxH*{{1V_DMd| z#Xxai)q8PcLV0AWB?=VQ)A7)9|Fc!SNmAB`Trf*5&LI?eCrmc*GbHPwlqIAW2h8GJ z7#{6qQ@eL@6UK#edM>0aVY~zvydil(!k?sZx8#q){|dULk3!1t*0kh)Lq;{zGP8*p z`MEjy8N3)ZbqoxmaJ#*OmtVZ3s@_DB3`|BNwmrYgg zk{bvmUNktgP(WCqz*M}@UoaK_r~+3RUEK;-)thKnyPv=TvubcK)u1&cV5%Xt`Phuk z;6MXM#9_{XN&~%Ys(LSO%7pSRy-><1sLnA49;CHuxD2j~ay?Fq8Y)($R$@W}kk4ir zG-k`dpy@j|&w3~gXSL3s>o1@9S`U=XSQ7LxIh3mx2QnsnuV+G9W5!A_!Q*I!(hNK8 zNz#OoWP)BZFp@k?BhG}Z^}y4SZi z7lt=m+M)z9lmbf>c#VC#a+Dga1QgSZB#CAugt<&%raglhB~z7@V4TV%x~z@xw(%NE zRuW45$0}U{ke|D+dMYh!@*4N*!`!{}z2Y?vi}kki8e6bgW(u9v=3V%FB|F~GY*yeF;BGKb= z4R9n$P_df^PZhgykcL(4Mv$!yUcAJSKDXDcJ45}u{u(Co;P6)$+V8949w+223?Ve|PDXG2zBmwHP`i`?c_H&vJ7jA@)mk1^r!VgFz^wSWZ?~_Vnz^#`jhhyK z-Ed~F1(p8pIcZO&I!o7o+y9fobBAs^{BaEGb9W9r*dp!d+)uao@BU)bh@+WZ2M)Y$ z(8dENUs=Ds*(<|d{%Oyigcy%!ZyIw)eC1~!t=p($-Xq_)UlaY|&hYa!2Tbj@;P1xO zwmmaz#t<^m(UlPtC02cz4a_ z1n;K13cC8Qc<1~ZANsT|xU1ILQ~6VRzxqk*ld-i^lhfXc?R}`l{$?`=)aw0XopY~L zuDU0*Yw~ZkJ`2uY)Op}4=YIm;+g|ILb@e_S?vyKVdz|^=(6rH29<27VM|x4E(|qcxi9DH!< zmJ5GXqI%qQBwtKNlB|{h`wOXtga1=l5ZYr_OG0}LT168Xae-(6R!f8fI2@8R*cw1x zDS8~^TG4P8+2LTx=y8mTM#K5oJq}wtgyVkoXgJqFd{lahYl#m&K4wBZbQ9o3S5`0VJ_7XOB4ip=^vEQr7Dl$yCQm2BSB7^Rno@FV;)+PeP6wLv`QX7 z!I|;}P;5M^walYR)H9`CJ;quv#WVPtN2MuJ&BDkALbVf0UlX!6Mk}G}VdLZ1JgRFR z)isZ5mJhrK`cU}5|Bz>P&7-;)kE+DpR$x=U$UEUSy)Q(zqS1P?6$=x&tr#@HM_LY# zjy}enJ&*Y%h^}!U^KVNOcvRuYM5!LtMKl|%m}$v~m{Q#_+y13NWolq5kSW;FDJ=~L z&B>-X6q`Y*1~`mczgrlK83m36M9|=l%P2@=F4)IWUJy}CGm?yHOqPIb z^g3oVlG2!Y6FExaLq0ZX%pT!Hmv3%W=~4}8%-OH)C*?zF%vOjBg`%4$>3b!Od33&y zT^iHHW;t4*RW+~Gv0H$CfYO+KcWG(N_6r1hnP%D}f{iiRFvbHwLsN4Ud&Y(-@$M6# zxG(nHBa%?Q*2=E(nQ{~)%))Lk`rKEn*fW-wvISN_GMMK?hL{C7jIlP=z}l_Zv)6w@ zI&|C=&X9SJ_(*R;VCZAaU`p$HL@|bF=RO%j)_=m-3WgLNyxjh_vDh=qUS5o8S%L}K zgdyRKEGcHPyw2JPjFp4+2fciyJ7HGnV=^t7B@u)Ye}g3oOv`{@|GlO~IiKs&1YX_q zz0&2LNn?!j7TQ9X^-eU?J0taa=k*k?)g3BPtlw=K7xSHdwkR3<6%;+L7|2|FZ+TuC~5M4ZiRq9rU<(aT|DCr8aJk?(nEze)o>3hZUbm(E% z7Pq85o8=&3memv5*M9@(!^rYD1k1A%Na~6<&D1%Njj@wqjKhGofh4CYpr>$8_3*>f4nJ=40G(o3M4SynqR`VTeGe?#_!eK=oz z{#?`{E@kx>_}Sf=#V!%<%sy?20zG&H=UN08yDU{n%F(-4%RNU%YPyX(#bQ;GYvrD^ zghI^bQYX6N%eY~sFRE)(PeuPA-OE*LBidig)jf!dnc8zg$%_h5?wR>2S|McRrfd1u zdv^WX3O*}jDdocGMHStR4t7RFMuy|kvDGy?8A^Gva^3av)>w@WMw#W%Xsc_r^7|pV zp=+`qKS1-_Slz+Q>c;Es3_Kk5sA~4$bD7PQ&AF;I` zIFk74QG%HId6#o*6gp4 z!{q|Lr4*Sp{Q8O)nKiuMUFqF0t0J?YkC@7LTXvV69V!Z4wgSzDUzZz2T#-&*PS{k$ zIyyLvidcu1R*qPH9v-5uM6*>9>*#i_Fc}XW+q{eL#>#|DCr4+G_4h}~V>&U3G zt|Q&A%S~#+!sOEC7E%+ABG!=+vQ)TRNtQ*d%UZ6PpU#bSxT)9da$B(ZUFcUE|9lAZ z&pVp^^Jalm;Ntgf+&^!+&=zGVLy0q^wC+IVjZeXUCtbhiFj45fo53d%m8LKcZo zPKzk!j8y{5SPj%$jMg1sF>v$!{MnWRIm+fG!dT2GofyghOB7^RTlV58wU!DfrktZ> z%&xM$=sxd+_O0U>U65U)8TDIb*TnVjBBD!}r%IO^$gWoMcpmnWWmk`G)n!+4Kv2uB zu03qm#I>Xgn`JLymNlwB82up7U!d&j-`MR@%7;`wVmH&j?`C7X&M?Lofc6k&SN~Yb zXZj3KzQXwEW6G``{Chf~xW-zdAiEm-&A%bL3NJ(~O1McRoLSItx}eBAp^t$D4`o;K z97GA$x(7JnnvDvO-i3=qACsH3x#VU-iQQm{0yn8Hu69e#uII$~Dg4=0B)`q2}(l(d3O(K6L2vrn$-Uu&IPRY+2LGSaF- zHH8muGOPNRTV@n4_1*4rk9f5q)-)D=-T>9^-b4F)2D7ZS^)}ISQ1u5pHba5qsi#+S z1Myj^Ey_I%rIsa1O`yno&cBN&W@FWj8LM0MW~O5^7^}hLTh)|3w9Vs$v6xYAVJHT# zLq>sbRTF0~$SX=5FQAm}TQRT5b1>+FyYiUPOB|)!{Q)*-rbaX0>VW23)r4;~aLL=` zp3u&9LWs_{f|=EPt68rH*qxbzhgjsD&_$qC&DL+#9s~5<LW#?Kw_i=T% zunkUD-wgr<%@TJj<3%?EFUDpMTsoDUtb5>uk;FaGxVqggc5gz7oo|T(Cu=!aSn-^! zm}t~(Q;wwluQ*x%la-%cI^XPKysdJtf9g`bq!80>5ygWk|BAQ5C@6cWTsyrg12B>y z`Rb11>b{*7#l4~hc{Nc83?a>bQkus)-rC)Z^u z?(a6nR$V=9Lc(wPNG>7|AWukXe1N7~Y{L#+w>q-QyTcr|Ymh}S2eb%AU4xBkQ>MDx zcie{?*31^=Uh;wu)Kudj5d|fxyPf7Jc_ND0pX|&0NrP|Ss5VyeG>U^JKgLlOwi3o- zM(M{;67~M1jDk35@;r``;Sx|vkAwJ(rnP>nQ5{B?Q@F$q4Ht%b1>F%C(8m-VbZGY- z(Z%b(DqU(J4!UsQA^I`JL4Hr_;-ED8o=)%*a%wa$nixx88fV$A1o`$N?}QG*ENcxu zQtLF(=TaQxi!<_+V%v6vRQ_;w)-nm!4gcx;R4ele5!Oawf8d9B7=8Z@Ad5u8%7h3I+Jm46`spl}<*A zw<;OLC?0R1_;=YCK5R$PPE&A%Q0nFI`qXY}R1YSU_*hF6SgTtQ3s<~o=gQZpCQ3d4 zN~-)Ytx^1bRMcuGIT9&9x3l?j_)G6E?;PhB4*?tqW z2cZnq?mhCEaujH;J4cmSb6shLH5wCB$zv8L3>@MVWgv8yoE9x;%l6!z>o|EDyke`c zMiWZB%Mt|&>&X?@6c*K}riJ+*P*UZGX<;62%EYx$FRm@T`!>zFg%;+pBF>L_uiK&o zGL!;K6ez4=(>TftB8piyl9_Bo=((D63uMEG6xO8G9L0Z=FcvdP3PUk0Wf=tuYtl0u zI}Zu-F1@;RCvKXLP~!FQRU>J$4E!l`Z4FDJos+z||V@1cF1ZusT73Yu9xD z%BAlWg>?fi43eAW#?>0bX4y`lRh^0JqWc5AFDb0^xC*SeTA4s{F9E4c0`_VWz{l7Z zXi227evzr}^P6N-qdGN^B;bQP4Kw8^P*}-Gky{s{Etm3wVHK+qElEma&`;%pS!!Vx zio6p-4E#*W9BX9laCzGRl+BO|`k2hd>eL$<7qpI#jF(G#FkXTS+h4w%cXKbP zMm3RSw>?S5F_HvZkmLX(Ni|NAMKwI^YE)+sO1x-rXrT~c4^WNjF;F_HZ+n%BXq8%~ zLAh-!)Xe1R{etv~1tGba$r;(&(FruVE>qzK;(%XGy9V#6%}AW~=IIypk^>Xh#V{pU z{4M7|P1I@&@sQZZD3l&eQ=2oPoM?%H0!@ME+^L4k;JPTgAqoYZ6;Ly@0{Lt-!+5p~ z44OWsd-jN>@6s};-h?yZEuh$Fh8BzoT1{D|8J51wSP3R**J?v^!BR)Ven6s8B&hKGM9#KY^rbCDTj~&ZRMq@HUJw0BHH-H9oqQ&vbE9Pn&{@ z2j>yWusyBI?%Lc9mIaQ{Zmjc2Gu=hp-d-JmowyR5e@fBn)XjwiT=qc^0 zB(aatURPRw@L^)g5G^2J;@7S&V=b8CdhK$W3aS-lDp8Fc(~GZAeQIt_94!Uqk1zg3 z+j`Y%J`WvIUsrLurtWv{$|BNJVp&A1r_9w5=_#>PuK6jeveNX_fkj^@B8wpv!mpy0 zFYaQ;&1qk4hoeT~nr{DQGY)4D4b=B`^y!5+a2S*Or zGoW^AdfHpBjeaz7e*MT>Is|!y+%|Wae`=kXtCzpz8WfXuvhIh2x3xPnI(GcLT>+hQ z3#RvKRl8Bq`TzXvGxN)DD?i?+MRd{Dr#7#zUa)9H!v?#rzphWl3CBa7qc`O4oajFz zy3X<3+0#y)Indy#d-BI!aP6GhVEooTrozcqoWYdvrw0Frj!#;lVJlAY2a52IR`_WA zRqI&lA2+g0dmI@*)8o1_$5y=49$#R3+)&-viiz6eNE_%_s#GNQl6bq9|AOsUtiGB~ z2@0~-DnUV9HSEEnwowfQOf>|WRYSwozDztCB5kjdAjZcZ5uXgP#h714fv1!}51F^D(n1m3|GiNQU(ePZ^((3fbDtUAMa zGCjf8em=tNrxrCc`x*KY<1Bd625Z0cWv#g$_Km`>*-vv@1}oKj&3;M}c^~{w5&m(_ zezJ~yiv3)GMQx)RCNR~|L~r>>HH72Zr)O9l!ioLgcjAQsp+`|L0z&_bJ8-h$7;IGHj8=b^=IWc!cF;E3WXl& zS4rc#*+?%WRX#$}o7eCT)kowVrwqlc`P?9E7E#P*WfGGeu{0#2?!4oW9b64PfA;ww zIm+_`g|V1X?qnzi-%Cb8hT?f-@L0}8L@~`sGG-{4aSD&ac)p?x#jJ-pO8fLmHW>=X zOGKBNS{JRl$WRo1PRoa7D5P$>3_eX)+iSfm^m>Y8>$pBs?@ch%3EYuz5^L( zS^u!ZOPU0uLLZZ1xvk`GLg{$G5(S3kqx1h>!@`c!}TOW`Q{y4l(h`yq-u9W6r87cuNO!0-6Now7u<9v zS_WMjwjB%ZZL&M3r*M=N@7tmvzg*;i{M!Umj^fu_S zgVCiYM`>`xuIKmY<3yMJ%T&75!vV1HB~7s;nB9p-enQBM@1XCM%y`Wzw%r?Nv03^F zv#dAxL^lcOfn;~8-lEx^(Lhocv}vZJzhYxtXBcB3&^*ZQc(vp+{R=2xVSMy4skwur zPcRfOOBATNMC@0Tjd4h}5Yn5Y8;Fvl$Dj8Cc)}7VITW=)ieK zLTNnIN5bl1AEPGp+E{|)XSlg1cD5!)aujI7yTE8QMTPQ*j@~^=+t7<~+}tZEz_)*T z-W}5MUL?OV`M+v5)$kkmCO zIuQPKMslpf8SHde78j&#gAVZ%voakRIaNK33v>pD20GGZM?5YNhXsHWj|2L2XCCMC zanv8b&(4pfGOjJh6%^#ghJ?^1ZJR2tE!BtQ%Mj{==2EfRZ|ORL`a}C_ui8TxrTUC; zb=+;G*OtC?A)^Dkx=>E#5p)+oa`HMRr)6abXmIu~&}1{6`oTrO9W zFxZGtTq-iW#Bl$rd@h{DM7hEvgm)`%Vat%0;+5B-?otpb_Tte(n+CI8J;^NM8iPgL zJNQJe1t~ZsI7*=h!ur**}8llH6RS zOMQ4&{vq%nxo5Qsr;G&8>I?c_@vMTj+BTGVh|RK+K&$#~erdZ5=rhQ(+K$Yb64C## zO`w-)ru#>-F-9B4I0IIx6Y#HQRqbjc%p;W8zLqHPu-f5}OU3iB zBEy7sJ^w4U5w5g{rQG+tT>gu)#{O}&1H}TCGe00bDd z%#P-pzcIm1XLNL=?akkR=25uyf)rwEeu3~)?wu;+QhZihS6269bbTWqmZA_kDiwEW zC6)NSt5;xtw=+0J@ubVQYzDbtJDXRvNp0*O%?xm) z-gJgWxB106fNCSG9MA1XixyQ`TWxBsZH&-8c9$T9k6dM%-hMa-Fe?Q6F&0N_3WyHk zmhF`x0edZ8ot|2dlQ)T#s&EEhsd61U)~oYXR+-{QU*=`z3Ux(U^{1eqnS1MsPB*#h zqrheNX|VmtOjaVyvf}!g?y4_M;j%KJwJk~tLkYJ;!5#jk$sFZA5ykBHV4JSUJHgCyo1`oueSV!g3M=$Is(yAF>`bJrt#RJGfH!>M;1 z@j5TevO(OcAxS{rMecg+O`5wt14!;AV0Ho<<3Ph0cL5FBqVB#(2cM~D&#F>4XbSom z-F1)H*_{aGdE-nu3f%RrfyNCuvO(@{@Y5Q*3=X@p@1|@-xSTN+@2qf5&{gG*S(+bZ ze7<1d^MIU*6Ie6IKHqch6anQlvaR$na>wh)?3;)?E3||>lfwz0C_G+QwY+!ZSZ$fI zY{zNaNB`_V6)$3=p_pR`G`gjPt9H^j%KM=>P)+^gCpFTJoH|1WBvq9vJzt|rubuc5 zPV|#JDxaz(N$me=AcwtdKwKQ;LiH-WBs-A3Pv*q6%?ers6(!N9mVPAs@N6m@(9DI$ zdTu%DV;qqD6Jd6QnfU4HEjaVZ&hc7err2Q?=3=eN{et1<7_j};?rZD=Z2DMYC#%?> zVg3dJs^@_#RjvboDpCpP_(!#O`+bT3qD|C#dJ<$MXJ?E-rLbVQu?)8*=-J9l)AYHW zZrvH`-{sf1F5&IQ9IU_Rg}%?Wtvq?Bm+QWawvVmoe&m+d<8B!ckhHShr+@!GZR3yU z`)}I1Y2cjZVTT>B1pd@w_y;%c50n-j+qc!& z=<%>e)#=yo-#sgS?%VBar=G~})OPdr&o-R-ek;GfVoombY1J|3z_YJq9b0qvGtaMk zvf395(_YBheaDnB8*BC1G--YC{2KbN|`=SrG_|6Z1ch2G9?Fo051T6M_?AV3c z(_1{Y=I`C9uQl0qJn_b`Z+$*`V{W?()gDYJp4GW%%jwb6CXBiuX@W=m70<5gc;Hg% zc$LNjb}G73WnWNTl59mrfz(9i4>Mb>M27R1u<6kJ(|8X*G~Y;f!de~ZCbMwI&Dj{R zBh)`}a_^=q`gX27_vE3Gju~@PVsG?5GV#KZQ}b_nyJhi`RX=w8sN<{!KX#k*=)4B+ z7CbSbRO!Zjz@{Ci@b*Wp=|IPg#k<0vZ zx7TUBa%*Vin|%%yxwcjP?S}7Pox1GBl|$c282Efq_vSv6&TRkqo}jm0YPfS%jg6iE z>@j)%FZG+B8FAa9;MaN#I(%=*AK&e5(x-=qXX8qokY>$NpAnc=;`g2CUsW%b^o$qR zGlnH10vfaoc|#A|+mFYX{rJ;tKc+lDxuhO3+n zy#^F?`+jAR+N@_`VZzx%<7{nb~Q(JHz6>AjOp`L>M$G#C(V$RTnJyCncFd^D7+`xOc?x zOk@-*ffzh)K1BAUFWB*>11=kXdLF57Y2dT29R3f!)3+4<)2A(vi9l$i6XC=hb{!A(mcWqV)uHoV*;@8b0h zRz6#m?-5eo2Ul#Mi?`>*ee-*{8*g(m{<9*Eo7$d4H$A1%&G_W#mHnY>cx`=Ch)a+$ zPFFcyM_>xRuBTw9JDGZmw(FkA=j3TvOVQXPcw_X#G63AHA|PgPV>dxDl(Ok>KXp z=EQ!0asRRgOsY7z;i5bAkKUP39NZ8=r^NX82RDOZfoQmCZ;)m7w{n?HBgG)2SJP!S z;1NIFY9I-|6v54+OK+0kX0$2_1UJj!qK^>V+{2|hFGHI9Ire)WQILGgAv7%C$f)2i z*O8pKhud{R00%+P?~nS4VxSDAI+0MSo7B&qRyum+fMa;euJ#cs2De!h<%Y&vM40}P ziot+m&XLnd^~flYLk!4L>N8_eqP$H|uBf8GCSOz_McKrnC}yP7;f$C~KBD=jm4O-k zh_~!&AEqeI=6)KRe1{q#%3!gL&!e!(H>-INY6z?YwE9zalkYBZF8MQguNnQcHu>Ho zvpmPl^3f&@`kn=JBX07&zE0fa`xTIcC9Ig~p~uM>M+m&5V>ANVZ@9@f7dHEm>WL;l zjWc>f=4T;a*@{3}1A zhjpwuzoUSqmS~D-01?p)nRf>wI&?iAdCO}{MYPp2O_ZhtC0!K-jsoVjp(wpr6q%z0 zC7zb5dA>u}gP@-Vck9BkKPk$5Xw$CYv@Ihjze|@3hXPT;vNIHA&uRum;XCW(Q374M zr-3dX61udeC~xl3Y8mfuN4h*-U!Y4Jh!Q4Tg74BO;kUOXQNrW+J|89gwokKVJXC&% zy~mTxEbByUsJ9Q$+hCM%CtQpYBEHg^sedvVqggh_Hh}gOMhQ1+(wS}mlwV+c_>ymy z>5lrRAWEb0swfa8oNh0R60+bhx?Q!C515Y!uv7LAZblEwa%SLRF;wuMv9wc4>?*>A zUu0bP3b^nm1_(7eP}()DQ9&y}fK&DqYa$VO31?xkZT_Jk?d@!=?`xt1)GzSLqkF=$ySp!*krOTyYr!_un09_%*d_E~b!hOE?*#@CEp&8)5{U2o}p3LZ7Mb1L2c6kARyr zc@Vyxm7M@ofgeZ1?4|q>=#T%9Q=Cu`4;~UEDBK-r3Jx@f$8+VoBZ90ZQ+Q}7K7xDX z5d5?#2{2FPm(1qi@Q7gi5;9)(Bc>4OSssEP!6B)BgnKlShGQeCJ_DbY2on67=jITZ zlq#n_Xe`2E)nYmYiR2>nvfM)w-HvpmhZ&e{4KbTSzymQ^O`+kz@KyM|E6JV%zc$gI z()mwY!Y!dzYiNiii2F@Knlo`YJ|>)gG9%5AF&uH}k12%J!5nBp+VCvLD15Bd6cI{4 zL7!tWStIDr+y{cgxbN6JKAMUykL}2C;wVfe=+#b#N!KHpzjgPK2z?Ue*pyx~M* zKftx0-B_nX!dN&C2o&}(3r}uUrZx%i1$VtY(lp zO9-WKzEUUobU{cRQp6l?wbJpZ(8L-HSxKvSN2?p@rMIybzys9~*~ru0OlFka`f>T4|N?DZzBdm%K<4#OF53yyZV}?PFr#%oEga{9YTy zK~RE}C{3&wqkLzgD4S|&j%64@2~Jy7`v4}PEoqo zWyYdJfxQigYJQe_!W;_3ZsotFC<|B=1$A}u*o{VAmm)Sa2_bZWT^iKQ$;~Qg?C|)M zN4glr)h0slV={tw2ZDc$VcN_eD4F^t0NY?6+e0T-U<(}7 zJ*tWV#(LA2MKDY=7fvVEZ-9~lKNJhpry>#C=VSu+abim+w1ugycR|Jz7pN{-6QvSC znW~Bch4@^s?}jKmoFU37BAMVIpypbND7gBihoB+e)}TT5}dNSVV=_X~8X2L)hnyf6XRK5k8S z2Wc0}#oPrWAu6uGJWa*5mCTZ@WLeL#s`p|*pNNXV+WCqgHo>cSq`#+jf5^#`G%ql zoX?C!i2}R_36m{l4h0lemCq^4`z%WS3X7qJdO6*Sl?(&h7MuK%?=g z;C4o1`}p?yzMbN`c7d{^CVelr%aQ0d8e_W|^eQ!f;(HoLB8nNm#{Dxei+m?2$(;ms zoubG?NXb#PqCw<{3xP0TUDC)jTSiK>!Jc8z3;#k4yDbTJWux2?8(sv zqa8tv_ug8%SOa-`c*?8eND6b_pVNInX>FRh0^K`yveKbq{3Ir6|W(6r~>9OZ3=YsUDjY4SMV~G_LF8D9XienXxEQAQA*^C^I`83K-Y* z9VtrGQ3gd}a&+=&fYRkPpi2y)3mh>;x>!zW8P}@4kuG{MN%R;P*LCL;K>rfsdLc|= zT;V6txQ;lZXp1n zY-ZdI=qGSNDYcLt0)Bob#+5Y+nn#!CdmOplAS6fAqRkeeV&r!?yU-1ZO#uON(}29;X*;ep29Zg zEsry9O(EUz&ewP0<@$kN<#ya=gi@gdtM((RAx0)nr*f}Ug=nX?es>DxKnI<_Mw|1h z{fSVvS4Dx_Ue_}`sfPcEX6O&()6fiu)HHq7n$C3>j-h5ay?`>|0HA1Sh5>{L>!nP% zaE!1LnDC0DNNI-uX_EwQiGZ@)Ce;i`l8Z@%BsD2XUS8|3)#m&N(F~JSQ9v`qJi=&( zf7$gY@o*5YI?RR95~kJ$MzWRaWgt;6Eu}JfF)8;-wH|oAY1?SZ#^x-F(sF)FgyB;u z8>{sIVX&juc=CS~W!Fc{Sd=J`X$Fz{L=^?R#*<)-(EfJa%%CV{q?3D%#Fx5ghZ*(6 z>rLB6QIwB%`D<)`&3hH;GWWbd7d?254U@s+qh4c97m3#xi|_L(nIn7swKl&X`wX-E zkeQ|4yx27i(D$R)7@aM8jn*%)vvqlvKT&Df27?-J#f~g|Y<~;Hjh9L@9VctAqu12NY_AMx0fbsb(SFteYHBQ!<7AP@+@q{aXT!7+ zxJbIaKzT9+P(FiA6nx2@8lMgG<`eswCgn-m2*O$5$rr}Xw~Fm2SDIgL0E_LXknoI8?VL3P{_pN&AClnA?v^BJbN;fnYB)hu z!+NRZL)DO}L)Gxa9jY1vuU6D*bN(~2pHHZwfc-qylChuv`jo@Jq0RY*>lH(BU=Ed&sF+&Y%O7j8n%mVuDobL7Y3>;Lw~<}yt*mY zlI1ULb_05PE*-k<6w-6p9VtCq?c%vI>e9n-j*43rfSZ*lYbzkFC9P6;I)(gvZp zs%LS_0?{>R3XXHdT8mp26jsZEhf+xseFj|=V~>?y&{<;HSI8{;QD<7KUFbn)!!|IY z!~@E5@E`Ccx5p(HZaa)x&mrOYp$c;3Cc1hO2>KaEpl-NGUW{* zr$#FGJXt00OXa)wF=tw*>$pmW!&ecdd~MpnO}&fTwlgGJ5#xWt+D_Mb)@D4ERBmy! zQXH+oPD62nHPU>R4=wU-a#!47?cdm7?V&^~sQK%G=GU+ve-QhzL}@>|!R5Le7wr?N z{m2CrjcDa8iB`g-M!nk#Vn4vB*ZH70T7ljM#SPZbvDBfX{?3Gl(_jr(z(nm8aDl9V z#mW`Xqam(<#0qo;Y=>j`Z^6*5NDJu$HW=`{vEG~e2?-MZtnqP z`>Qh;#i!UH+V&fXW|m7;R*#0gKYgkbZh5t8L)pHBMNuYu{v^U93ooDQBlrU@tz;V@gq{73Yz?PS7E=AeEq9|sh)8UMmo&&^*@6iZm)ET$DTD7Jq zP2bdMYP`?%$W6nDG}Wli8`e94!HuEnLR zWR|Zpvov%Yl^g@;F}UT`suM*VPSfRX{XaR(wP)JZb*Iop6yO5Nvfs_J6l*{06 z!rC`vtZn6t?A;D^XdjRVL|FmL0(K|98AYjHmqAg`MJKmAblH9dbeTlx0vjASmXPK?8g^&J8l=lJ-w1SR z2zKX!Q2`DodlyJVKLm{~Tg{@S3?fZho0 z&LpUag2*_=Wq{;a0#>XgV>~GvVP*8}{slSizB#aMV3N?3l#X5o#qKX1) z?vtIeD%QdcV(DFw2Vi;b@eqV9Gc(PR2-O~)8Ah%*3o1{X@?e;17=Z$6QKD8`=M|#R;(u`Q!HvmorC?=UrRJ$DckgQ z)P5{{x0LP~ur>ISd(yg`%ixHB73v_hABiSng}{DXwqYS`;Igu~dsu`eES#YlKVu{t z$9ql%VR0Hx-^LKj_&bbAV`d+cnH`ro130sBWM;{9X6xS9MA<-4eo{rL0`##{lrLEn znSIp-Tn5(@=p%EK62}334xm%{$_k3|`$}dkN)&K|0p(>Gl_?51m9M-*QJkw76a~k1 za;K7V`~cA9X+oDIigJ5TDGjG`RS%@gM6vBiBXBBT>3$o<1D(p}+ew_t<@i4DRCf8R zl!jAzxh$FGG-j5K0v@-n0rWfQRL=JooyvuPPKO;459axVQ4C4w!yiwvbGpd6aiy;tYbV$yf)8t?B%tC2U1idX>x^WaGV}D5>vL0RES(9V2X3Kg4IF^Bb6$l>;^VavtJi<>W3Jy$N}r!bYQ8LL{(gN+i}pj|YOIPU2Dq)%bjGa> zcsw!%U5&|)Qu}ckP>w(f0$+0Hvc&Go<Tu%(?mSI$hze zr}xv86|y@vQ7j@z+$@xpDCjXB_~yu}R91!$(nKNqR};nkD;5R1VT`OoQ6{h`O24Oq znhP3L1|)7By6a1~QItR%GZrNZII7@1Jty^^I23T#mu{peQ&|+n8q&$#bvmPUK$o(F zE|n?Dt!bq-+;v~F5(CAKC69x<{>P04=$50qegg8*Ob&PtzR$bsHD;97a@T>PFv|(d zEFX72+TmS5Ux@Dd%S}aheFPv0-lk%vzC;27MQuUHxDe3ZLwEhfGIXZ(W|kI@CCgAs z1o{#QXd&(buqfcJyCxUX-lN586&=bVviBGZq!bvU6ku3#z}jbItbNb<$IV6P{x3N} z8L|aXnt|%ZmppzdQP-Dj2DcE)gA<0_TtwIk3^|oh(0h;M^sB#L{+o{?f7(0XVs@4T zb9IqWDp$A$iQAgd2Gz2ayn6KJLHsV~z?U`YUyaazl9K+n<{Y+*`_YbPaW`-3Xv)qK(V8e^uQX7ssL7(hF6Y!y6eY10gQ8s85V4B?dGT8FS;w2TFNGFuL-hMF)nkP6eOA;5w%Md1vFu& z4<(w=i(SrwRDygW${KDF)mw2Qs$ddP+!g}~;B8Rrz%A^tVBRaimN6VQWNqSBYnCk| zDZx3CAB_CyntYd&58WSZfpE8Aqd&rLZ=&W(oBFdEqo;e(>|zjFt) zP)I~Cf$vTZY``(pi(kb_M76Lkx;4(v%b#ME`9x{*` zJKFhd&3>=Vjyc4GxhwTxkR3VWF{csqIb}!N+nP+BOHjl@FalEn1#&$>yC}*a7Dee= z)K~NFa>fHwtD`4u%b_S+OOzJ{Oo{RsLCKYh28RNkuq~aUwDVz56#k)3p6j7Ast$CS zKkntr?3g`j`jU!{MB^%=~K)Z{caBuFEW&7^s zHMV94J&h=b5>!#Z6K=T9J5QJo-HVh*JOHLH5Kt*_jR-4TGFIGmo*Voadc>K7sHpq_ z?HPnxN-`8U_xCuWL~Kz-0gV>8r3iY&7IS#mf6pV%O;bC<2giOaMpKy4nVZI(_d^RL zeEMM=66ACK56Y|K7bNdTd$qA*F$FB(&)n8fiVZFRssZxKs7%c2^1*;dHy(hVP3zC0v&@XtpJ8 zv=l&4KuBPYFnc&p#XQ`*pg`iMsuS$K;v=5F;uf|=pz%Z8H|NXy6v{3#|M0{Dm^pgH zFWu2<%rj^_F~BvYrgQLPxnIC=x)I2HGIiEVxM!DA$L5!bW64# z4LAh#*AgoP_Tv-S{E=1DR%NdKX3Kw|#E|O(6KA ziqK`y1foxBDD{aU7ef~-d=>SHt`t)~U5PT0pj1~yfsoD`LQ(3oC^D}WPTMw73sVfa zpq2C((j}j!C|{Ie#-cArN*nH~p}UtoOrQUr!a2fB#_xKvRf zq}#AS7Sd%wuEQ?Rzw(-+a09wwS%$)54dm*qq$$@Iym zc8WJ$m`6i5Vh|cbq<*vkEB|Maf0^OG0}R3eLqiL_L1M7sXSN8UVGz7wBHvNGZIMEm z5laBJw1KmU33>Pd za?lMwlAR5w7vPPgWNTu$CBhV*Yzeo9C5I-MLK2b_tPx4!rmzT8k{v%Q><0{i1J#Z+ z{F>UHKzLY)Ih0IG_yT;??aH>}MDS|=5c*6En0jR=q&u?kN)o?F@kxoSKqz|E*I4jDpjd{l6-IXoQ6 zAP@$nix9>d?LkO2hy+=OP&4-g4@6=}%6{5AQlaLr51Rk4k~;E|$6+OZy=+9yAH~+1 z0xMp6Kd~PWhwXwZ823(ai-po(ptpxvc%*t5{l1*)62aD>Ylzhp62i$q{&ZzO?Hyh3 zhazECk2DE^#S&)a$$+H~YB70Mz z;@%V;V>F;G!9b=dcWp2ly0cw@q2Nmq$oz7P>`jIA6C{8|fk0-4O%}*tB9(NrS2sXL z&NDF=ZcGC{N^@{F`LL!R+o4V=c|c^~$xs*{m*--T^kIbKd5^@2aDtw^kH-P5XxcL{3 znm?LtsScXI+(2SKAgmd29FA&199{%((-DGkS&crl1WOEm<4^W>LGNUcRE5@cPF~9~ zyDREGh`1HPd=!SC-`2tVz-0}8YdreOq2g8~^^|TRr_pb(RfT#9CDJuf$Oc5HxB(%c z_}xPPw0t>=aynBJWg;1ixBPqq)*v%W@c${QY)1qg%C;{caPwl%X?vW_Cr5GiAGvAYB|{ zP1k1Nx1Zeo8oIvdw^vy$@!PxL`@G+N=Cz7ietQg=Wjr&>W_g>t4FmM~=(n%`QuNy+ z=WES$_qSw>p9&r~9pijJ8;*YaYVJi_Ppn0e!J!d zL=o}Y*`0{9ED@DL*NU*?DH%J4XP(>>k1qR{-%xQ`)|lzhCqsdAWvvk<;%!wFP~6`Z z#dBql6V$wEQM?oJ-`t5H`z{Yi+Mu_?i2s^y<9u$-rdOu78| zp0dKBA?lfOm8`Hiq6N3{Em9-ACq8d; zJe*55guii^+K)c~rGOgH8E>QxN|cu|i-!zJSE%ko(?9vUtc) z%W2_}TihOiBts1h^k!cJpJ9c44Q^{Bf95bB*5=Lq)59EQ;p9&xXK#wYT^LTjJyL|D zsGK5_!2O@et0mkLYPE)jSopoZf})1XHlzH}9?9T&>mnjRbJcuLR?WxCRnrG91_!=5 za|c~DrWTqg|05`yRZ$>#nYo>!bYM|rz8jpLYOCgu_t^t$uQvuSJ6#mTXkx~qL}^D* zdPzM%4h4djop2omwaL>gib9*{bT}iX@d9zi_w>%&+~*5Imu(c~J?MA%1Sk@GDO~y} z{XRsg@}WSN<`BI6trvoqO*19I%Tow~!Am6=-$^(H2633DO$RuE1tHp#%q*J^f1>@j zfKGy!?2jojB89+NSkFPQ{wp%ZJ+d**2Q<=ad<2XZQ4Ru%=S>Iw*965+6$OHq@1R&r z$Jltiw{;cx@WoVQHXV=#XIV-rC9f0VNjDi!j%NPdpdUss&u^xb+%Qe2^MQ(*_>x;7 zpT915MwFIpX#?aeMF9)cVQ&%KbO;MBau;J@zeu==;$7)!zLYkXl@h-Fz^Y>7`CWQR zvpsCNJ;2)5!ht6Cgz&v3O=YP;xW}QENPGwxLpaj~2YOKnpVJ7={Ux`YN?~)2-s93_LYpUpPh;sd0s$3iN8~#M6cjGG8PqpV##WL|F zO_covWtS>S6+p?MD6g|9N+k!D4h&BhsgmpTE-1PFXr!k?^EsSR%4}vVN|Yzn%om3O zMtUk7ltz@(a~PETjWjW@4f+FJpl%n;D4U|>uGH#|WIl^@(Y+?nr3D!2eP&S7G{d;$ z6N!;d#P@k4-RuWVBi)_MvK>RK7D?Zh=?>`AF~hjzqG+VY0Fq}TZT^jnafNJ*(*Z3G zGmP(iMQ8fxF`8YxfP<9N>xB7tM7euO6$OlR`U;tm_A0|z$R?W4Frv7aVfq3Ql|mOs z*umBcM|J?SE$z`he+upmqS(v(Y8?vbfhZ9(WlR-N-da@z?Xx*lyJJOhhVj3dVI;@9 zA6AA@Jd^zYGQ)VU2Y4YN6CMf&c&%ItB;SmTx@2vPL2x=_)=o>$vC{1fHV^N~S6O^`6apzFLN8k7!MH$DU zD5$HGC(?*_ZHZ0#w&HB0%j7#0%q`VG1I!c$r!&Dct^*W z257s`M?V4Qgc0R^K=GVNtGkDwh!-wd6!6hIz})U9k!C4UiL|XOC6$ubkMJZ~#*D_xWP|Vd8^if~6JX_Jb&R=w@*W7mwPF{rOfu3abu4;qVIaxm8=v8*I5DM3br-L8* z!_kJug67vK4l@8Xe@nI|9@zBqqlo<=V6|p7am?H zb(RXF@Qmc>K_T23V5%Bn4VL^iOQ_K=7e?h$I zeNvyiUNh7N7~6dfngUU5+9-Po%9l!%N--G2Y&BAp+})aE`I4aQRYif=Zfg)ld4WYy z`o;s*;+0AKk(?5ZhgX!%|3>)n73viik%ikL^gT zQm=Wdrj=R|xY8RE4FLwM!Hm}B+w-YV!Q0d`}o*y?Py7Cw~3AIZeP`m?ck;( z>{XeWSq8ORtcwTquQ0az0VvMLc2E4RHPgn~WQ+#c7{3BEIGR%Po1+!zOn(Fv+7 za{r}q4x*G#RYif=ZsG5;*v_l{mqL#0*!`EwED@DLmq6HIm9e9DW_FWjF|506p+sCB zui4ZQHsBzvd)gDqA61HASXW$Y21}7ha+9Pq3bzqZTx+Jd)(nK`L`Jv@rp2{p{$sUf z&{6mhG`~iznIzQwQCU*WU%DKz9}w2&4h-fxeq9}i`C`z}`uI8ne-3`lnDn>NFeM(VI zX?M;{CMYJUa^O%PqWSGZiV{3ni@G{_L__H^6=p<^!*8reQLZ|)dR`7Zj&wQvwm=u7 zE^b8Vzy=r;;BM7eh`yLU2ym2K+^w3Dq1p3t7@1`NGfU&+B?ET@x&b4aIj{xIM>Gck zNjMCpkfVVo$Qakl#%KUE(h+P{6FSpmXKCGj7$3eA5zUT)KNFPNswfcAT!1~o_OV@J z<72%(`Tg+rsr>y=#Gi%<3S?3WCu}i72-#dl@I65AEf}+`gx@1dkC%XLaB=`&ijxB^ zE~g<%Ok-6Puv~{Brn$#LG6laCWrpgQeQd5g=yIQ!XwP&9#%3f!1&9o&bSdpl@3xP0 z8#B{v4yIgYwmUg6+^dq9O`OAijZMgA{XU?izz?O^o+JXdRwi&;9xoZR4_o%V z1ce)rAD3roqMRZqYgAF7mElXA60Q6SgQAp;bRru~rCbf#2eR=ADy|h!8yCmYV6G-g zhT4+mP(X357)((nuqX<;=;Vrvs+>=NE?*J407-Eyt>4#DT=Op?U1q;5(8UC)m?QIH zDnfhB>1ps;|Dz2&}Ma6XrkUUGk{6EPU-<6Fq z6wsPtD#rgfo$1IAO6&H(`0%ArT$|@#A}Ccc z+By&yW;yP3QOY-(C|3xI=uyyxNl`#ymAgi{I+aCH%0@PkjRsP#whjc@fJ<#RE(E}p zGgK0j4l!dnfu;`4w0J;Pby8KO1Zl2OoSljO+U7V8y z>YBmRO4ttSn<}hFs!BYq-S|GQu)eEWM(bSAC^E}h46V$4;LH)Ahoi#!c)O^u0;`qL zkboUzrq0>2F@^&gxDYkJ+4v@%=>b6Ttgv>JATuqgiUJDj;M^jsu+FmNQHm3!_rb%e zBO~+{AoN~TSO?Eh@|c|20t#z|jZs+8t4H6>>DG5} zW@qHvZMxtct-#dqzZHwT&Yz1%KGqT6VU?Pky$Qr+&%NTZQC#S`DtI1*9J_%-gIfm!4` zK}qf;Xr2^B9s>0mGqQvZM+|^DA|ir*&!C47MW)#@Qlbs^41-?y7h>3LNpKD)iuN$- zWp_ckSRd>(xu&IX%+}m8bQAf$(Ll{j7J{)1sk*bRLvi zPqo|K27Ri_o*Zp3+7ZM^eql^Vvn37>O3cbK=xOgl;?I(w)9pzP8vwv53>+J5=K7I` zb%5&cE+{Xq@0{q&P(058Z_1wJNKY{)+j8(XLGT~`Nse?|irtu*k-}k<0m(-}Z@ysz zryv&`Ss6|4;Ng$>C()VabVWAo(7^uiQnE9{9hhr(q@=nd_4s@C zi&2y;ctwrU-!Ce`nUu%fze{rD=p9MX2AGH&9DcitYm|j!kt{1ezxY%;&_BzW?Mk%6 zIJ03G8L;RQ?9kR8)?JVvj**NLF8euh@PYI}@L-Uw7!sWg4b)VvC5cjeMWz(@_K9<+ z$5pO3eg#};LWB0DSrf&Fpv+Q5sRAg=DM~L3gQC=9V~HNCE!9BobkJj8qH+BuilWpB z)kGObP-JF@LjmLZO)y0Xj$%;qH?GtyehGBRAaq$qQSNjsqjBgquOrfBQ%iv^7KjE8 z=1m3tOVSuaJ4uY|*Z4kfTJxRbD4D z#%{7PJ_l&vM%4Uf{0=%(UDq-?6U65Dl1Bq240)XqWn(W@6fmy84}~vv@1=Hq{Q-FY z?O-iI3xdEdeBAE-Wb4^)NF#s0Hreh}&{(73aJ@4lQs35=JGBpVegi49Yw>Y7*M;`AaAlb^*#3U;w`4T+n@x z_XOd>XHqVVnnZXBTrxRuh|L`v>zc!14@$jY-MyUKq&DgcWX-2zdRXHVp!)07YYy-P{6JE z8=^fSaTIJa>$^I0z(&N`p*=?i$W&UMzaQK=1_|omaE2LKB$TUn&J9VMl-;I*SB-oK@k*YxZ_!c$d1j5dV*IS zW^=w;MpLDDmy2e|gz6=&N?DPOO7+r>sFzMMnVi=AM*SgiRqDlMb6aRHuqaB)`5X}j ze<>U54}tYD9faY+oJ^{u7Sv$IqC}ZSP%5aRfY&&O%S7K{Q4}-M$x|}K-y1U>W;7JM z#<*;5J8x>EvKn6Fv`>&Oi+2ii2?nom{Io<6V&XM+UoG((kKy~g*VwFSS*?`Ji)5Ci zm{|tfCf0o)(38+>jOiF3#4^V{8;xgX){xEGDa^-EY84Kac^bDT2OCbTCzmq4bAZ;%aJ7O7H z>hUk?R^sVzILZ_pG|G_)4yM%Mv1MkaIjAFLgx{n88TX`5DL-5Tx<<>!MU#JU|0xH5 z^JqrTAFIZGOgL>%zEB;0RaRGN;)Lkm*EBJ2gP+=hAlFv^g4q@X<4&KkZRJE$<=DT+ z#Ln7~8T;$D0sAlZt$plfnf3MFt%N>+a_)PbyFG2$8C<=0?`_U<_IXVVi|40A|GIEo=-2OsJimHz%II2&8*)}m z$o4UYetFe*@TC16YbU?|LS5s~kl}4hTLQ1%IKTC&u$-fdQYN;odA9wmYoq>LHnzga z-=6HgodWBYJMXih)@M}@U;JuCGz}WZaq4GXS1WbH&_4r zLSo!2Wt)C}EH8M`vC!|=-nf3N*)yF^9`Ahmy8B~GcfX+k3}s{$<&PTEFbMKE1E=(Ac@x-Qmk!rI+`pxu<>D>hhno++3ph zcjY^_Ex&7L!m)L$KL0TFs698f{NIn{#E$Th%1Ze)-_$PyB*53B>a0iUH3!+azocJZ zee%0!z503r{d$7*>pd&XuIt6up`!$T9sUye_ZIMPajBOt+=f9P0{+!t2hScQeRbxx zjA!(fr(B5f9Z_j?|BlCIweR|x_57Bz<@H?-$A7jp?$`!n-?cdhdvz~$=kEMB<~4oc z#&PG@#wv-whj*EMb9D9}QlVWZDNiSEikP zKQZHKr6qIcR|J{=!FH+}h{Gj&9Iq5i0L>&@RF*4B-a(~G^768rpS{~e|Z?MM6k*rwB> zDP{G0S8r)uy1{4e4i(q?dT!qmZbt?KtdS##R;S!sU3|I6)F-&_00cLU9(I+i&)-m{KudMInN$_{O6w{U(4PZaN^A1 z&F-~>KKftK;c=hbz5{YxqGWX)uN=`HpV77-Gl=~tt+XFA4QM~QKSk|FM)R_|FG}jj zOK#OmemreE+K+czOMQcx24X+Js!yr~>DN$k(?9sNCh!uz z#;S1y@T|xwfFAw==SK~Is&z_A&w5dWi37<|8Hbr@NhwFhMay-I2-6Gbs{$ja7%5rg zN=C$aSqlerjTA?&ZA6^?o^goM5vi=Ec0`=Y5bg`}VwDg}VYQVgLbNW$Kp<9NVpb09 zKjg$c>025wIHJKFnl1X3cQY>kL)t_6$R0uBt9z+747T ziw{aw&8!b?6YG6|8LB{Vh*9k|?NnCR3YdW}xxy-8p0<;OAz}en;_z}PkQ}M;wwGbZ ze?Szw#-rk|)+vru+;j8d1n+Bnqh~W$i1U@~m9|d9mUs zgo~A6`_E-hbUR&n#^NZXI0_-bh%}6lI|zaa7A1!ZKZ>J};wYqmqmY~0_Tv>|KT0a? z$7@+=KVrd%qfvjovt|^si$oz&Qv2~*7O@{-)N|lGtu&m#bP@ei9EBhq^zbT> zBn%}@>w=3ymV;z#_*buz^-)5(J{FY0_0bki)#LieU0qi97OWL~DWZ^BmuDkN^sA~U z5QY4j#zY~^zRm;M4v%x$QqpaaaG)tL(UzEMheR*_6^Q9xmorWB3;uM+KiK{XiO4sE z(TrE_dHX9!-zF&u4ica>)$_&{Q`&mBQx6B<()ID+yYvbz%7QYsiH|*s+hz43NI z#EeCWGMAv-kqQro0^4P+xii_rSQN#KbUK_7(;|e%FNPgxLPk1(68ZkSzM;L zU3MFgge9w(>G~>UjFV+!yas4txLwwz8=dJZ`IT)4~zfn^}cFL9jDFuco1$Y5r?R6Pz!!i$i2(2}5Tucd|4C(q+S=}}e z7<|bS2fDTEs}Y7=lQQJP+k~yaka6Q5bc~8yWaQKpt5WVI!POroq(K(A01n#WnvyIV z@FwZSWFQ-Ahv)i~*NpNxS?8qDad8;<^Fi0t%Rx{%`$zO$%uhg4>g#!1KAU zLOEhl<*D)_KV=$27qGrM(K{2R0=i+U;cETSm>=udjPlcepe9NUf-*rB1@6vtY)VlY zvna|X_okXQtv?#1;yJWD_I?y4cqlU#B?`z6Na$Zu3FT10^4Q}j%0w1LK^L9e@(`P` z;W?no7(y3r`FD4g*Ep!LayHUs(m8=HAz*oSd;lj7spV+~+Xdn+mA#iib@Nz2iFshJ!`w8yIIxiqylk4o8wc!R5@&f}17@*>Kglj|1F%bC6k&GLc}* z7#`$w*@B!SgKUXG*~9S!$7lnbtV>F_55eQC&|NemJ1q^09dUK{u(Z)=gVbAww+0yE z;l?u-yn*1v8fXd*G>66Gk=*b|t0gETBse%U)Idrk@taKWB|}szxGbaRiY7%5G{9Az zfd;*uyO#}bkogQWw2B#+5d~^KvS<4a12f>71-Xb5$(Pw3$Y1GEcD5R5U_K9}Jpq%s z{^QJqQ!cK=R7Z|I3+RwygijdVaM(D@DE%T79u&Ws1CdXHKr$n@xQtm4Fs0iXO1=nV z7QZLIFJ!V9EtWv|NMKeT+&&o@n2|-k4U>h^t~lNHcDSnJ$i#!ndi>c2XW-o;pehR$ z=b2>=C(KVg(KFCM9>!FXO|@n9vAZw^B2VNmy!^w53U+#+!APfPl+CYTCoRqsAB#S* zhuLZKwmofg#!rGFn|dKhiLm7c6A^=o(Pm@cu3dUjaRDCM;~nXC7$K}2Gg&#|WaZ#t z_Ml)(XowZAhRF+7%Gs7rU0t#WxL$3t&S+-!&S=~>_~&{oQY;RQ`H1YxWN`B8#Q&T& zmT+r`H9QJE;159a3x2fH>dqtf^0w4ot}-=UnhCAg4dLg0qxK`|XHEM72T{O&u$A?} z3&@P;taOR$;7dK^|O{6Ba7sZlUKIL2J)Eop9ute~+wPl~@pwpJAHGU8A(0qP-#jqgFRDRaPK)(cWMS#8qOL1A-SyC2 z5peJHQM`OU1a}1OM+RtqXsbeA@(hY^+sp40&ClLV0nMLNmS}#A91?Uos%~NAs*Vl5 zFD)!jS2=A;$}Mwvi&d4VDDjFU^|#4k4FxT2iQeF<|qtb=TVr~&^4h;>C_;*prV*x&IDa5st zl2eHF_O&QtftFOEUds&o=>n6P2&)-b3^J}JH4z}=!CcQUPg28wUrrM~1jU2$8Z@!O zGr+;5W5{CH!G12)*XfhVwgVGRiVhPBBrOV)F*c`*% zGOB%KQY4H2h3L+JKsgS3F2L}BqzKx_pkFoo^Vf)feoN_}=fEyl;G6&Ziu&i@YNO02 zC^wZTqv5!8MA^MvC`yxGHOKNgLAjxdQUy?+q$sUf6j`oG7jStg$yl9}=9)$uz+#v& zyIL-ZqP+7vGZrNZ+?<5$>hG#3kXe6Qb zdP&T#9%(CPSAFj?^is_9P!JiTSdX5Lu_U0)#O&$;J)P-1KsgEH!}r+Ne?xW^R9kb1a`<`&D_FuQ1r5^9AZWkHSTGY<00(z(Ts+^C67I1R6?J>T zO~RMLP1vzttE z(?9}RNNxJ@nN6r2bMMit@FmV;7NSj+U{?6-y~MJ@m+m=~^%HxJDFazP4SQdy2d+qu z5GAN4nD{3!VYi3en|kVvOD`$HG$05QpfJ&6yyOUpYGO?KU9iE9WQRO4_D{#{F=Z%y zcs?0J`eBlV@GfDyrUsNC zVx9ugfAmz*apL+asl|_!9P;pyA-5NKMffzA=H+8es7?h78aGsEVX7ZMwR`r^4w;B$ zO_tfj4+3>rjpHge7`M$t4Mdw?G*Qe1#jc7{1yGC>W#U-|MQN0$swuw~E|02Hg{^ulsBo#3d_`Hn6xPdFSk&eFr}0>(QkW%%vB;6|JR-E*UxL0HJ5`^Z z2_6DCUABxQeY)M10{=|sn)HacTq#b8tLK%+#80ANd^>BHIV>bp947x1u9~GZ#Vp;p z3d-+9iLfjMirmNi|M4@)!}+V{g)#u)?q1F@;R!2WN&h7l6)ENevEW$eU}(5FXC5gm?=1zKRP4( zJUU z6x&dxVjKDkrvI_%)N%h{bsd*Y3MJY9<3N$ zw&+b!-hyk78m|7w1m%0FlI2h!xNOmdqBQNupePi+P99v6uyDJzV&2eS30)RZl&Ql@ zXatvE|Aur)m@CjF9D>V~uO?x9hQXy@ZAowm0T>M~kyck{m(U6>w~|>NU}hQKZonh0 z0R0&ZF6$nn$cWT=j@C@S{+*0*nQV;D09tDdE^7f-5am3e9DwoROA%b|{Q4Y0si=wq z!R5_~UbhqwOxnYXFa7;+hNb2*bW%#^HbU{kGK#kzk@B@3L&#vL8;U4Cdw_4SHRGXs z({@CO{zerAT!8*pi(m*@2;G~Il4F6A!a7&1(67%EiF;ovabN4(4XD)~FD_KyOZhQv zpC-y51Z9aT3S8)@{sl#OgGEuw#ttGI>>(9cjkVf?Y&1a4Ww}97VvaFmQKIZrThkm0 zXfDg26lETZqM(aTuDOWL`MLp&CzjA<4@GgF(b8NqN+Dg|9w*Qx0yJ0X%xqlzsJS|F z$*WQ&%lhejN{qnwamx|;_I>q|TAFJ&ndKME3W$gs-o7WG=a976HBob!Yn0TGfEm7I zj5B3p%mK7sBrSG?&h%SAfk~5>LUV1NQ5sR+5)Y`-nNk$cT%oW5?q%D#hpn*Av*b~V z6U-TMwfkg*?lmIx<#MR7!VHu=e(iu=o)s1>08m)FRZ&1;4Suv(VPW?s6#U6RNzV#v zMj0ZmFGgQDDGQSw(%&>N$|n(>>c zuoeK4X9;LKn2a%8Hpa$)2GzQ2e)Bx2MwBD-;F1~*CfW``lnc?SD4?+Zwu686pKUOK z^y>ih6S$z1+Wmx|pUL<+ZA4Ui;>aytLAh`WP+&XDLxYL7LkSl?kaD5Dp70X5&=<7t zgDcAQj~YxMNiJ!V1e|(M2Rl_rvKURp;>MIDF*zl*8ce`dOfVI!!NG-sgk6l6oqh5c zQ&C9O{PL}R!Czs1pym6J18aeHf>0`yU|Sne4IwgdT3mU0!gy4IQ^7zZ%A!#vH5yE` zO&~%kcG)3HusubANFkXHwi0&3GqHfN;4$EWHd-}n2=09Tjf?NV z=`|#*v$Ky@gNY+VGfY-R0nOkGD9q`!;sz65Toq;t5g`MN-F-whD%DF8Q7;y$dg;)l z^7O>bSTSb;=c#pNQIzZBTOtgfO4*pW8H6DKy~afl9^zQK_hQDPL^(=OK2b#huW?Zt zMR}7&QOrmu4|B;X>kt4l`WP$bOn{05IF=3irMVwk%U zX3W$rcn;s^y~aVwK3ZY!4`h}fGP7*y+bZJ*pf5(RaYG{A(s^GgwU zN5{Ar&~BpFxQI_Kr1)qwm(~o^G z|M-S;Q^jAFe$whwOM_oN$?Ea$&9g@>mHdXj);MBpr^m*9HgKZ1_gSU8N74+fi@jhl|?&Y_nCnox1XC1mE@zJ!{8O;cJYK=b7*Z29Tb`3Us@KzQ7 zVU3*2uV1*^DyR0j*s&jPY0|b!`oWpg{yuo;iyxYgA5r)8HN)6z&)gar)wWOT9(CXT zx%Gw@|8k#6-7uu{@LKJjY<{fLTmAYDA3AUA9rNUFXYbB6?6vH6^|gFiW5AXtpW5C1 z>esjbS7*?ZtvaWly6D?yZR4bClS5Z5thv4PfOB*8bMnshjvX6uv-#&or(N&iK3^v0 z-6Ou%b36QlR&E=3A`KV7}SC!we2EG)67(zfG?huiKAf5O(U{E;n7-+AWd(@%B2 zM7mjkU4TX=&kvXy?cQ~|Nll>QHP4i^&_*UR_fk0QeWR(`D+8 zesp=s4htL1`1FG|0hK~t4mHbSJ|bpNtuC zr{s4hGO;PdPrjeMm{D(;wzVuQn_9ZmrpQ z$L()6Yc@1Gr$#IhOFtl{PKT>pUcO&tm2*4E++Si*Ui`X;qP$k-s0+83%>5<(y1ZDw zho`Hx2HEi9v(a^yJvR9-n8@cK3E&Bd8i&2D_Ug>&jAu-hCy(xCTm4y|k>lUlR`Q)r zJq~o-H2&L#I=`Vwl_qQ%n>KOwt@!s_e2VrX5H!Dr{rHjCkBv(EVX~wB*i?twkGBA2 zM=2e7$&=Tm)&~TmZ{RC7pCZ12$xiGCSoKJMoi6WObjMls$huW9GrMn=c&j`w-fcBp-hE&m94ICz4P1{PTLfb&bx>INp5g-KAIi)-L;J z+PbUG)+dtVHIW4Ays0UGEJhUgV zO3tGE8{3n}ZDu)KV&qR{?r%Z5*`5{huc4`>fADKf;3a&GHN0Z83N_P90rc=!Uv&VL zmLMuNN`%RQ6{a!{wk3#X1uepCEvX7a)wP@|a@8cl_`||d8I7Q!#Eu|pI!eUpqJ<;r zEP^<4WhLTF_lzU!ETX2hM4T^J99D<1okegc@MU{`QKDC?qCmzW`W+_YP)NB* zSzuLosmaQd8A~OLQFH+TRuX@Tw-1Pov0n0Rm8rwj-&*JbCJs&lX&Vx_+P{YqV+V4v0l=OD#lN$l+tP`bBctY9aT{v{OlUT zgrCe#ZXp)E{cIWBhGAfGisvOzu@ z-{&{TkBy-ln)Y>HZ*!{a5E=QDhtw>*D_m(j93 zm&q*OU}hO@TI%u#^m=G{-kc;_p7e+^8WQ01JsIN`*%<2qT1B)xuiGfSA|lJ^j>Guy zrBHMSeEvsJs;Z)ZqT2{m_ogt<1IUd3gL*uCOBs~avMm{^DP{Evq5s=5`d0+{e~x-^ z!)!{m{gark*fJC-#seGn<4cFLje(Gh6b1C)$uNl?^rqrr0jj{_mNF^O#-zBVOo6qO zA-;;T$AG8Oc|r$}`>NO{*lE5Si+bgCje>#y?D^t6p%_d-w3P8!21zXYziA9Q-5Eez=}tS~DvA3!fi|z1%Fbm!F%K=5EJgJk#b=`%!kXrv11|><3#W z8tg~zcHRmN1uw;TpTsu@LF+J!H9{mlUnGPT74K?$%A|z=IbAW(CCmXW3wR;o-)8Y; zrBT#MfkuReM3^+1*r=^*v3O;1OBt@OlsO_I!l>3#>|wW*VU$vQ{uOaqVez6okW3PJ zeNwo3>)~}uky=^GC3^(LnQ$%^{i} zB8M_?K^PjsDGMj(uPsRltM;^0-GgZ<19sem?LoLEEcvv;kbSzqT48u9GLzxNVTD0U#5y__uOlCZ{ zPl53UWBZg)+8)IdO{{9|Q{XH7X$x|T2|J{!wPpgkV{0a}*XxM=bV1R?VzqK}RoE&(h3DYtC&M){GTY*Kpp6K7!SlvGIn<5;ddr#Y6N2+BrP z6lf`vdW)j?Ph(JIxhAMgca3DM7D_W#6K8jY(iDhgy*7ni3f zgIE+r^rMq!S1EOOo0d+5Mk_F*n-rz%g0dRf)qojDmvWZ{y2LO`}vD~?OD zt8gY;%&vy+E31`V1-?KI`Bi3?F{Lxw)dTc6%&s12DrQ%w0Fq}p3Ydvw^eZhJV;rE> z$L#7?W#~)|UzOEpDHHHAnQ32D6v(dn!<>tLb`|m*d`lS=`f!-CKscqi-XScQD`P=@ zV8Lxnu%3;egqv8?PphTOT||i}sfq$_(sMr+!33+hxTTC{hitLvIY^XHBb`Zecn)R% zX88g`t5&_c zB;5w|N71*6%@lpBNq{7{2#T4uKS9R0UN*)@0S%}Qr=7adnKm5er_oZT{m+PU?v5%7 z_*M<3d*@pT5l7)}VauGX2$;J-L8ZjOy+@GS88Tkn0bYEAPS(I&NJMEDPcqJ4fFoK z<_U}f8$@9|y)d51ke!wVDda(*WtBALk%YK19iHlTXGR*04@v@Y`SbNV3YiSF(n}!^ zg7ayT;zqyZ64m3Y;FXa-C}!wjAxW^j$t3}zNj2)C|6_jdGfxh;5yEq9>@LfbuCj zx(KE%3aO3JKA@z)4@DSYEJNgWhD_o%br@W>4_=np9!L4{{RB;vvIIr!Ekai)MS)91 z+hLOvxq6;OQOZVDA{)<0xmval$i_#gxsG!i_d6#uV^N}1Q(My<3TUq5oEEJ%g+Wo! zMJLx>bVeTmT}Zc-?OcNL_GD05*LcfCwYxDw2p3^%t6&7UQ zL1E>oqJYAB`;}sa#kVo)y_4aGVqxZ0CF1&wOwit`ax(rDDy)ISC_fhN)HZI2zMH!M diff --git a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run2_testDeleteEmbargo_pyhonTestMessage.txt b/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run2_testDeleteEmbargo_pyhonTestMessage.txt deleted file mode 100644 index 4295489..0000000 --- a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run2_testDeleteEmbargo_pyhonTestMessage.txt +++ /dev/null @@ -1,39 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testDeleteEmbargo -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Delete embargo information - POST embargo_change to /silo_name/datasets/dataset_name ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 204 Updated -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -ERROR - -====================================================================== -ERROR: Delete embargo information - POST embargo_change to /silo_name/datasets/dataset_name ----------------------------------------------------------------------- -Traceback (most recent call last): - File "TestSubmission.py", line 1394, in testDeleteEmbargo - expect_status=200, expect_reason="OK", expect_type="application/json") - File "../TestLib/SparqlQueryTestCase.py", line 182, in doHTTP_GET - if (expect_type.lower() == "application/json"): responsedata = simplejson.loads(responsedata) - File "/usr/lib/pymodules/python2.6/simplejson/__init__.py", line 307, in loads - return _default_decoder.decode(s) - File "/usr/lib/pymodules/python2.6/simplejson/decoder.py", line 338, in decode - raise ValueError(errmsg("Extra data", s, end, len(s))) -ValueError: Extra data: line 1 column 4 - line 11 column 1372 (char 4 - 1664) - ----------------------------------------------------------------------- -Ran 1 test in 19.271s - -FAILED (errors=1) diff --git a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run2_testDeleteEmbargo_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run2_testDeleteEmbargo_wiresharkMessage.pcap deleted file mode 100644 index 4402859f3e50d9362382fa4799ca5c53c678d812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13037 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 Bd3XQ- diff --git a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run3_testChangeEmbargo_pyhonTestMessage.txt b/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run3_testChangeEmbargo_pyhonTestMessage.txt deleted file mode 100644 index 04b281c..0000000 --- a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run3_testChangeEmbargo_pyhonTestMessage.txt +++ /dev/null @@ -1,39 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testChangeEmbargo -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Modify embargo information - POST embargo_change, embargo, embargo_until to /silo_name/datasets/dataset_name ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 204 Updated -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -ERROR - -====================================================================== -ERROR: Modify embargo information - POST embargo_change, embargo, embargo_until to /silo_name/datasets/dataset_name ----------------------------------------------------------------------- -Traceback (most recent call last): - File "TestSubmission.py", line 1457, in testChangeEmbargo - expect_status=200, expect_reason="OK", expect_type="application/json") - File "../TestLib/SparqlQueryTestCase.py", line 182, in doHTTP_GET - if (expect_type.lower() == "application/json"): responsedata = simplejson.loads(responsedata) - File "/usr/lib/pymodules/python2.6/simplejson/__init__.py", line 307, in loads - return _default_decoder.decode(s) - File "/usr/lib/pymodules/python2.6/simplejson/decoder.py", line 338, in decode - raise ValueError(errmsg("Extra data", s, end, len(s))) -ValueError: Extra data: line 1 column 4 - line 11 column 1391 (char 4 - 1683) - ----------------------------------------------------------------------- -Ran 1 test in 24.111s - -FAILED (errors=1) diff --git a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run3_testChangeEmbargo_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run3_testChangeEmbargo_wiresharkMessage.pcap deleted file mode 100644 index ca89a28fc24029d3e0a9020454c6a74becfff5fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12807 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 diff --git a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run4_testFileUpdate_pyhonTestMessage.txt b/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run4_testFileUpdate_pyhonTestMessage.txt deleted file mode 100644 index 8911a45..0000000 --- a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run4_testFileUpdate_pyhonTestMessage.txt +++ /dev/null @@ -1,37 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testFileUpdate -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Update file in dataset - POST file to /silo_name/datasets/dataset_name (x 2) ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -FAIL - -====================================================================== -FAIL: Update file in dataset - POST file to /silo_name/datasets/dataset_name (x 2) ----------------------------------------------------------------------- -Traceback (most recent call last): - File "TestSubmission.py", line 592, in testFileUpdate - self.assertEqual(zipdata, zipfile, "Difference between local and remote zipfile!") -AssertionError: Difference between local and remote zipfile! - ----------------------------------------------------------------------- -Ran 1 test in 22.510s - -FAILED (failures=1) diff --git a/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run4_testFileUpdate_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test1-204_ppdated_returns_content-5_fail_2_error_in_test_run/run4_testFileUpdate_wiresharkMessage.pcap deleted file mode 100644 index 2196a96adea2cb2191a0d6e5c57fc2fdbb20abd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25186 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 S?v9aG)O1jkmBKiAJtA3R3JPC?Dw6skNe6d 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 z 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 JUGC|0{|9$MooWC8 diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run2_testDeleteEmbargo_pythonTestMessage.txt b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run2_testDeleteEmbargo_pythonTestMessage.txt deleted file mode 100644 index 3c7429f..0000000 --- a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run2_testDeleteEmbargo_pythonTestMessage.txt +++ /dev/null @@ -1,25 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testDeleteEmbargo -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Delete embargo information - POST embargo_change to /silo_name/datasets/dataset_name ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 204 Updated -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -ok - ----------------------------------------------------------------------- -Ran 1 test in 0.369s - -OK diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run2_testDeleteEmbargo_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run2_testDeleteEmbargo_wiresharkMessage.pcap deleted file mode 100644 index ff1f1d80c022659f4d4e13d930ced621360724d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12742 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 diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run3_testChangeEmbargo_pythonTestMessage.txt b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run3_testChangeEmbargo_pythonTestMessage.txt deleted file mode 100644 index 8bfb78b..0000000 --- a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run3_testChangeEmbargo_pythonTestMessage.txt +++ /dev/null @@ -1,25 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testChangeEmbargo -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Modify embargo information - POST embargo_change, embargo, embargo_until to /silo_name/datasets/dataset_name ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 204 Updated -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -ok - ----------------------------------------------------------------------- -Ran 1 test in 0.431s - -OK diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run3_testChangeEmbargo_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run3_testChangeEmbargo_wiresharkMessage.pcap deleted file mode 100644 index 88ae69e53d17e6bf2b03682a5cdc7d19a8f474ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12372 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 diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run4_testFileUpdate_pythonTestMessage.txt b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run4_testFileUpdate_pythonTestMessage.txt deleted file mode 100644 index 44cacca..0000000 --- a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run4_testFileUpdate_pythonTestMessage.txt +++ /dev/null @@ -1,31 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testFileUpdate -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Update file in dataset - POST file to /silo_name/datasets/dataset_name (x 2) ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -ok - ----------------------------------------------------------------------- -Ran 1 test in 0.481s - -OK diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run4_testFileUpdate_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run4_testFileUpdate_wiresharkMessage.pcap deleted file mode 100644 index dbe215191a4263b94eef3140d5cca20c7c3ca89a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27984 zcmeHQ34B!5)qj}~mMju9U=ksYLkMUx`($5)l86L?LsmA0*$6{2GjW!XkdH;MxO^_4 zRzyWXph$%(h`1zx3Mz{&V1=S2tq3SoR1``-Ln+@m_s;URJfaO1e@);fnK$qK-?`_U zd$xP#<>MWjR?3(jOyKL%C58!u7bk5COBVNyVv6B+9E`E@GZp@z0;lYcF{U&<9Vuw*5@*KPfUI#TG;{ z832MqK;y9a?-Ck6=FvD9(3Tlv2kg)Ml+JV=pzH8a8Z=_0sBioVwl3B zu|?%Ya<#|gw3=NFYOBd>^4Po{b-B&sE%TWjc8|yIa>{QnFE^^SDs4>U?JkcuM~>&2 zP0kvX%WYD*8dN5W%2yK;Il^MG)p?agPK(QGcUI@f?N*!9Yxg$7TR!g$m)kzu;rLuR^Z@^D=bYGg(&L#MN#70&(vSfFo9{ybsCNQjxjNjg(j~pM}C{zo+j63 z$xBRbct@+1YxOzlnK^ocd{jw!Ok|nOU2k*e$Vb$fEHi9sol2+D>g2;J%s!{rcXLdn z(QT@Bm~!M!m(qe~#6*t7AIgy~r`PSO<-7rhfP>1hHfObWMh@I4CbH7xZUk^Hs{zA* zYI$QFkm$8Fc-3{aCc86NZkb_ngHZE*-s#FLxZV!;23d9_#F)sYp{|;tIYYf}pKa(I zlt*&Cq`K}TiuMst(YDNMAGh2Xn;_SprSfQNltg)tpd1iI=?5s^Q;6rpZJ6W#b< zu2jb@2iE6Y6uzk$#xOV|-BR9+UI)HB zNBHs`MOpN$l)+l^45F;~GKg}NF}5!MU>2@pe;m$b?I3;)9RH`j0RRC4!*$(Q!H7I zD9>LKMFE2~6YQ?>jBOnYowk8=X|vaGz%Dib|AJBwYVEZ|p2V#o z55WPUJQubu-{nTTn7DvS;S`{31p(mTOM!WL$#X=OcXOq%%S~hnQrNqkVS+P-Upks> zfS-kSPo2wSr)HnUH>b&A%U9T~3Y;9*-NZy*{su}Vbrol&S#lj=$-O)kN0$76EJ?UP zS@Q53QA`>rB@ThBNRq`Nikj_k0*w8^2(H34n&m3=8m+vA)wcqkXB2&icWb7G^MS;yP#4EjNp>zi8}p*r%pdaTlzGj5o|w5 zCGd1}6r%?2`u+-&SO$awY?72^svig10z6J?mk z6=URPP=?u{4BrlbToP%KIass^Q6MUW1aPh>3Pgv_zVF{uAU&?z$jfK8G}S_=>@x#3X9`pF22FV>=!XM2#!vL`$W)gUBrF zS+o3n;CRniKu^Y~@#QU{sPPma1(%>;rsqE;G`8?)Oa`g4tIXW1N~50~*zr|5dN25a zS3$7K^k$I4kCuK>xEfyhVBvs=XOJyQi>F=%Bmbe?Yj((E3!9#otywv-=-sR>>ctCB zZ#rd6TeJJ``W-_fUhP|-^!!(o58hR=r{X$`&HDb9Y0C;9kIxvLrwmiqEM5_9iCgsY z$_=`zZ0m^uf12=i+UaRIGnc#D`fhak|~~NxNOuD2#~rww|Wp*85D@n zfwmC``X<-Pu5KAP-dl>f)vC2rAkRG=%@lwzaPVz)nCARnhy#5^6a~V1nX8iy^uNS^ zZUk-yWg_&SH;IKu-qN<=Yj)xydHau4Ch^Zm`p>@-|2d2+lQlbuWI-l*>%0A@xYzCW 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 diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run5_testGetDatasetByVersion_pythonTestMessage.txt b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run5_testGetDatasetByVersion_pythonTestMessage.txt deleted file mode 100644 index c9c0879..0000000 --- a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run5_testGetDatasetByVersion_pythonTestMessage.txt +++ /dev/null @@ -1,99 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testGetDatasetByVersion -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Upload files to a dataset - POST file to /silo_name/datasets/dataset_name. Access each of the versions and the files in that version ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/version0 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir2.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir2.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir2.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/version0 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission/version0 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/version1 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip/version1 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission/version1 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/version2 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip/version2 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir2.zip/version2 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission/version2 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/version3 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir2.zip/version3 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip/version3 -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission/version3 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/version4 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir2.zip/version4 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip/version4 -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission/version4 -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/version5 -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir2.zip/version5 -DEBUG:SparqlQueryTestCase:Status: 404 Not Found -ok - ----------------------------------------------------------------------- -Ran 1 test in 1.915s - -OK diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run5_testGetDatasetByVersion_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run5_testGetDatasetByVersion_wiresharkMessage.pcap deleted file mode 100644 index f9dabb02db47b6f0d74e49c4335f2fcb1d52ae0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121229 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 diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run6_testMetadataFileUpdate_pythonTestMessage.txt b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run6_testMetadataFileUpdate_pythonTestMessage.txt deleted file mode 100644 index 44d3546..0000000 --- a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run6_testMetadataFileUpdate_pythonTestMessage.txt +++ /dev/null @@ -1,27 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testMetadataFileUpdate -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -POST manifest to dataset - POST manifest.rdf to /silo_name/datasets/dataset_name ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -ok - ----------------------------------------------------------------------- -Ran 1 test in 0.490s - -OK diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run6_testMetadataFileUpdate_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run6_testMetadataFileUpdate_wiresharkMessage.pcap deleted file mode 100644 index 3e18a68ecfa9529a1159e01e07acec19d3e31419..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18157 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 diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run7_testPutUpdateFile_pythonTestMessage.txt b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run7_testPutUpdateFile_pythonTestMessage.txt deleted file mode 100644 index 3cbc0d9..0000000 --- a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run7_testPutUpdateFile_pythonTestMessage.txt +++ /dev/null @@ -1,41 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testPutUpdateFile -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -PUT file contents to existing filename - PUT file contents to /silo_name/datasets/dataset_name/file_name ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:PUT http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testrdf3.zip -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testrdf3.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:PUT http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testrdf3.zip -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/testdir.zip/version1 -DEBUG:SparqlQueryTestCase:Status: 200 OK -ok - ----------------------------------------------------------------------- -Ran 1 test in 0.819s - -OK diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run7_testPutUpdateFile_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run7_testPutUpdateFile_wiresharkMessage.pcap deleted file mode 100644 index 3bc3d31bb8955ef7130c09aeba9cf1d3c0e5ca9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39626 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 diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run8_testPutMetadataFile_pythonTestMessage.txt b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run8_testPutMetadataFile_pythonTestMessage.txt deleted file mode 100644 index 7636f96..0000000 --- a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run8_testPutMetadataFile_pythonTestMessage.txt +++ /dev/null @@ -1,27 +0,0 @@ -databankadmin@databank:/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank$ python TestSubmission.py testPutMetadataFile -/opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/plugin.py:94: UserWarning: Module rdflib was already imported from /opt/RDFDatabank/rdfdatabank/tests/RDFDatabank/rdflib/__init__.pyc, but /usr/local/lib/python2.6/dist-packages/rdflib-2.4.2-py2.6-linux-i686.egg is being added to sys.path - from pkg_resources import iter_entry_points -Add metadata to manifest - PUT metadata to /silo_name/datasets/dataset_name/manifest.rdf ... DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointhost databank.ora.ox.ac.uk: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpath /sandbox/: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointuser admin: -DEBUG:SparqlQueryTestCase:setRequestEndPoint: endpointpass test: -DEBUG:SparqlQueryTestCase:DELETE http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:POST http://databank.ora.ox.ac.uk/sandbox/datasets/ -DEBUG:SparqlQueryTestCase:Status: 201 Created -DEBUG:SparqlQueryTestCase:PUT http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/manifest.rdf -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:PUT http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission/manifest.rdf -DEBUG:SparqlQueryTestCase:Status: 204 No Content -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/datasets/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -DEBUG:SparqlQueryTestCase:GET http://databank.ora.ox.ac.uk/sandbox/states/TestSubmission -DEBUG:SparqlQueryTestCase:Status: 200 OK -ok - ----------------------------------------------------------------------- -Ran 1 test in 0.538s - -OK diff --git a/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run8_testPutMetadataFile_wiresharkMessage.pcap b/docs/databank_test_run_for_204_response/test2-204_updated_returns_no_content-all_pass_in_test_run/run8_testPutMetadataFile_wiresharkMessage.pcap deleted file mode 100644 index f69a215f4caf2f131815f1b03f0fa95489ec01ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14711 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. - -You can generate your documentation in HTML format by running this command:: - - setup.py pudge - -For this to work you will need to download and install `buildutils`_, -`pudge`_, and `pygments`_. The ``pudge`` command is disabled by -default; to ativate it in your project, run:: - - setup.py addcommand -p buildutils.pudge_command - -.. _buildutils: http://pypi.python.org/pypi/buildutils -.. _pudge: http://pudge.lesscode.org/ -.. _pygments: http://pygments.org/ diff --git a/docs/indexingSolrRecordsUsingSupervisord/LogConfigParser.py b/docs/indexingSolrRecordsUsingSupervisord/LogConfigParser.py deleted file mode 100644 index ef9aec1..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/LogConfigParser.py +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env python - -import ConfigParser, os - -class Config(ConfigParser.ConfigParser): - DEFAULT_CONFIG_FILE = "loglines.cfg" - def __init__(self, config_file=DEFAULT_CONFIG_FILE): - ConfigParser.ConfigParser.__init__(self) - if os.path.exists(config_file) and os.path.isfile(config_file): - self.read(config_file) - self.validate() - - def validate(self): - pass diff --git a/docs/indexingSolrRecordsUsingSupervisord/broker.py b/docs/indexingSolrRecordsUsingSupervisord/broker.py deleted file mode 100644 index 20a5f6c..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/broker.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python - -from redisqueue import RedisQueue - -from LogConfigParser import Config - -import sys - -from time import sleep - -if __name__ == "__main__": - c = Config() - redis_section = "redis" - worker_section = "worker_broker" - worker_number = sys.argv[1] - if len(sys.argv) == 3: - if "redis_%s" % sys.argv[2] in c.sections(): - redis_section = "redis_%s" % sys.argv[2] - - rq = RedisQueue(c.get(worker_section, "listento"), "broker_%s" % worker_number, - db=c.get(redis_section, "db"), - host=c.get(redis_section, "host"), - port=c.get(redis_section, "port") - ) - if c.has_option(worker_section, "fanout_status_queue"): - # keep a queue of messages to deliver for a given push'd item - # better resumeability at the cost of more redis operations - topushq = RedisQueue(c.get(worker_section, "fanout_status_queue"), "fanout_broker_%s" % worker_number, - db=c.get(redis_section, "db"), - host=c.get(redis_section, "host"), - port=c.get(redis_section, "port") - ) - fanout_queues = [x.strip() for x in c.get(worker_section, "fanout").split(",") if x] - - if c.has_option(worker_section, "idletime"): - try: - idletime = float(c.get(worker_section, "idletime")) - except ValueError: - idletime = 10 - - while(True): - line = rq.pop() - if line: - fanout_success = True - if topushq: - # if there are residual messages to send, restart with those: - if len(topushq) == 0: - # if the queue is empty, and this is a clean start - for q in fanout_queues: - topushq.push(q) - # Distribution: - while len(topushq) != 0: - q = topushq.pop() - rq.push(line, to_queue=q) - topushq.task_complete() - rq.task_complete() - else: - for q in fanout_queues: - rq.push(line, to_queue=q) - rq.task_complete() - else: - # ratelimit to stop it chewing through CPU cycles - sleep(idletime) diff --git a/docs/indexingSolrRecordsUsingSupervisord/getObjects.py b/docs/indexingSolrRecordsUsingSupervisord/getObjects.py deleted file mode 100644 index 9836564..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/getObjects.py +++ /dev/null @@ -1,86 +0,0 @@ -import os -from rdfdatabank.lib.broadcast import BroadcastToRedis -from pylons import config - -def get_objs_in_dir(items_list, dirname, fnames): - for fname in fnames: - a = os.path.join(dirname,fname) - if fname == 'obj': - item = a.split('pairtree_root')[1].strip('/').split('obj')[0].replace('/', '') - silo = a.split('pairtree_root')[0].strip('/').split('/')[-1] - if not (silo, item) in items_list: - items_list.append((silo, item)) - return - -def broadcast_links(src_dir): - links_list = [] - os.path.walk(src_dir,get_objs_in_dir,links_list) - b = BroadcastToRedis(config['redis.host'], config['broadcast.queue']) - - for silo, item in links_list: - b.creation(silo, item) - return - -src_dirs = [ -'/silos/admiral/pairtree_root', -'/silos/digitaltest/pairtree_root', -'/silos/eidcsr/pairtree_root', -'/silos/general/pairtree_root', -'/silos/ww1archives/pairtree_root', -'/silos/digitalbooks/pairtree_root/30', -'/silos/digitalbooks/pairtree_root/og/-4/00', -'/silos/digitalbooks/pairtree_root/og/-4/01', -'/silos/digitalbooks/pairtree_root/og/-3/00', -'/silos/digitalbooks/pairtree_root/og/-3/01', -'/silos/digitalbooks/pairtree_root/og/-3/02', -'/silos/digitalbooks/pairtree_root/og/-3/03', -'/silos/digitalbooks/pairtree_root/og/-3/04', -'/silos/digitalbooks/pairtree_root/og/-3/05', -'/silos/digitalbooks/pairtree_root/og/-3/06', -'/silos/digitalbooks/pairtree_root/og/-3/15', -'/silos/digitalbooks/pairtree_root/og/-3/16', -'/silos/digitalbooks/pairtree_root/og/-3/18', -'/silos/digitalbooks/pairtree_root/og/-3/20', -'/silos/digitalbooks/pairtree_root/og/-3/61', -'/silos/digitalbooks/pairtree_root/og/-3/90', -'/silos/digitalbooks/pairtree_root/og/-3/93', -'/silos/digitalbooks/pairtree_root/og/-5/00', -'/silos/digitalbooks/pairtree_root/og/-5/01', -'/silos/digitalbooks/pairtree_root/og/-5/02', -'/silos/digitalbooks/pairtree_root/og/-5/03', -'/silos/digitalbooks/pairtree_root/og/-5/04', -'/silos/digitalbooks/pairtree_root/og/-5/09', -'/silos/digitalbooks/pairtree_root/og/-5/31', -'/silos/digitalbooks/pairtree_root/og/-5/32', -'/silos/digitalbooks/pairtree_root/og/-5/33', -'/silos/digitalbooks/pairtree_root/og/-5/50', -'/silos/digitalbooks/pairtree_root/og/-5/55', -'/silos/digitalbooks/pairtree_root/og/-5/56', -'/silos/digitalbooks/pairtree_root/og/-5/90', -'/silos/digitalbooks/pairtree_root/og/-5/91', -'/silos/digitalbooks/pairtree_root/og/-5/96', -'/silos/digitalbooks/pairtree_root/og/-5/97', -'/silos/digitalbooks/pairtree_root/og/-6/00', -'/silos/digitalbooks/pairtree_root/og/-6/50', -'/silos/digitalbooks/pairtree_root/og/-6/81', -'/silos/digitalbooks/pairtree_root/og/-6/90', -'/silos/digitalbooks/pairtree_root/og/-N/08', -'/silos/digitalbooks/pairtree_root/og/-N/10', -'/silos/digitalbooks/pairtree_root/og/-N/11', -'/silos/digitalbooks/pairtree_root/og/-N/12', -'/silos/digitalbooks/pairtree_root/og/-N/13', -'/silos/digitalbooks/pairtree_root/og/-N/14', -'/silos/digitalbooks/pairtree_root/og/-N/15', -'/silos/digitalbooks/pairtree_root/og/-N/16', -'/silos/digitalbooks/pairtree_root/og/-N/17', -'/silos/digitalbooks/pairtree_root/og/-N/32', -'/silos/digitalbooks/pairtree_root/og/-N/50' -] - -for src_dir in src_dirs: - print "starting", src_dir - links_list = [] - os.path.walk(src_dir,get_objs_in_dir,links_list) - b = BroadcastToRedis(config['redis.host'], config['broadcast.queue']) - for silo, item in links_list: - b.creation(silo, item) \ No newline at end of file diff --git a/docs/indexingSolrRecordsUsingSupervisord/loglines.cfg b/docs/indexingSolrRecordsUsingSupervisord/loglines.cfg deleted file mode 100644 index 7c2812a..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/loglines.cfg +++ /dev/null @@ -1,55 +0,0 @@ -# CONFIGURE THE FOLLOWING: -[supervisor] -port = 127.0.0.1:9001 -username = guest -password = guest - -# Configure the following to let supervisor control the redis instance -# or comment it out otherwise. -[process_redis] -# add the correct path to the redis instance here -command = redis-1.2.6/redis-server - -# Configure the following to let supervisor control the redis instance -# or comment it out otherwise. -[process_solr] -# add the correct path to the redis instance here -command = /opt/solr/start_solr.sh - -[worker_solr] -listento = solrindex -command = ./solr_worker.py -# Time in seconds to sleep if there is nothing on the queue -solrurl = http://localhost:8983/solr -idletime = 1 -stdout_logfile = workerlogs/solr_worker.log -numprocs = 2 - -[worker_broker] -listento = silochanges -command = ./broker.py -fanout = auditlog, solrindex -fanout_status_queue = broker_temp -# Time in seconds to sleep if there is nothing on the queue -idletime = 1 -stdout_logfile = workerlogs/broker.log -numprocs = 2 - -[logger_auditlogger] -listento = auditlog -command = ./logfromqueue.py -logfile = logs/audit.log -stdout_logfile = workerlogs/auditlogger.log - -# DEFAULT VALUES FOLLOW -############################## -[redis] -host = localhost -port = 6379 -db = 0 - -[redis_test] -host = localhost -port = 6379 -db = 1 - diff --git a/docs/indexingSolrRecordsUsingSupervisord/redisqueue.py b/docs/indexingSolrRecordsUsingSupervisord/redisqueue.py deleted file mode 100644 index d3e422b..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/redisqueue.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env python - -from redis import Redis - -WORKERPREFIX = "temp" -HOST = "localhost" -PORT = 6379 -DB = 0 - -import logging - -logger = logging.getLogger("redisqueue") -logger.setLevel(logging.INFO) -# create console handler and set level to debug -ch = logging.StreamHandler() -# create formatter -formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") -# add formatter to ch -ch.setFormatter(formatter) -# add ch to logger -logger.addHandler(ch) - - -"""Simple wrapper around a redis queue that gives methods in line with the other Queue-style classes""" - -class RedisQueue(object): - def __init__(self, queuename, workername, db=DB, host=HOST, port=PORT, workerprefix=WORKERPREFIX): - self.host = host - if isinstance(port, str): - try: - self.port = int(port) - except ValueError: - self.port = PORT - else: - self.port = port - self.queuename = queuename - self.workername = workername - self.workeritem = ":".join([workerprefix, workername]) - self.db = db - self._initclient() - - def _initclient(self): - logger.info("Initialising the redis queue %s for %s" % (self.queuename, self.workername)) - logger.info("Host:%s port:%s DB:%s" % (self.host, self.port, self.db)) - logger.debug("Debug messages detailing worker queue activity") - self._r = Redis(host=self.host, db=self.db, port=self.port) - - def __len__(self): - if self.inprogress(): - return self._r.llen(self.queuename) + 1 - else: - return self._r.llen(self.queuename) - - def __getitem__(self, index): - return self._r.lrange(self.queuename, index, index) - - def inprogress(self): - ip = self._r.lrange(self.workeritem, 0, 0) - if ip: - return ip.pop() - else: - return None - - def task_complete(self): - logger.debug("Task completed by worker %s" % self.workername) - return self._r.rpop(self.workeritem) - - def task_failed(self): - logger.error("Task FAILED by worker %s" % self.workername) - logger.debug(self.inprogress()) - return self._r.rpoplpush(self.workeritem, self.queuename) - - def push(self, item, to_queue=None): - if to_queue: - logger.debug("{%s} put onto queue %s by worker %s" % (item, to_queue,self.workername)) - return self._r.lpush(to_queue, item) - else: - logger.debug("{%s} put onto queue %s by worker %s" % (item, self.queuename,self.workername)) - return self._r.lpush(self.queuename, item) - - def pop(self): - if self._r.llen(self.workeritem) == 0: - self._r.rpoplpush(self.queuename, self.workeritem) - logger.debug("{%s} pulled from queue %s by worker %s" % (self.inprogress(), self.queuename,self.workername)) - else: - logger.debug("{%s} pulled from temporary worker queue by worker %s" % (self.inprogress(), self.workername)) - return self.inprogress() diff --git a/docs/indexingSolrRecordsUsingSupervisord/solrFields.py b/docs/indexingSolrRecordsUsingSupervisord/solrFields.py deleted file mode 100644 index 555a3bc..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/solrFields.py +++ /dev/null @@ -1,102 +0,0 @@ -solr_fields_mapping = { - "silo":"silo", - "id":"id", - "uuid":"uuid", - "http://www.w3.org/1999/02/22-rdf-syntax-ns#type":"type", - "http://vocab.ox.ac.uk/dataset/schema#isEmbargoed":"embargoStatus", - "http://purl.org/spar/pso/Status":"embargoStatus", - "http://vocab.ox.ac.uk/dataset/schema#embargoedUntil":"embargoedUntilDate", - "http://purl.org/spar/fabio/hasEmbargoDate":"embargoedUntilDate", - "http://vocab.ox.ac.uk/dataset/schema#currentVersion":"currentVersion", - "http://purl.org/ontology/bibo/doi":"doi", - "http://www.openarchives.org/ore/terms/aggregates":"aggregatedResource" - "http://purl.org/spar/fabio/publicationDate":"publicationDate", - "http://dublincore.org/documents/dcmi-terms/abstract":"abstract", - "http://dublincore.org/documents/dcmi-terms/accessRights":"accessRights", - "http://dublincore.org/documents/dcmi-terms/accrualMethod":"accrualMethod", - "http://dublincore.org/documents/dcmi-terms/accrualPeriodicity":"accrualPeriodicity", - "http://dublincore.org/documents/dcmi-terms/accrualPolicy":"accrualPolicy", - "http://dublincore.org/documents/dcmi-terms/alternative":"alternative", - "http://dublincore.org/documents/dcmi-terms/audience":"audience", - "http://dublincore.org/documents/dcmi-terms/available":"available", - "http://dublincore.org/documents/dcmi-terms/bibliographicCitation":"bibliographicCitation", - "http://dublincore.org/documents/dcmi-terms/conformsTo":"conformsTo", - "http://dublincore.org/documents/dcmi-terms/contributor":"contributor", - "http://dublincore.org/documents/dcmi-terms/coverage":"coverage", - "http://dublincore.org/documents/dcmi-terms/created":"created", - "http://dublincore.org/documents/dcmi-terms/creator":"creator", - "http://dublincore.org/documents/dcmi-terms/date":"date", - "http://dublincore.org/documents/dcmi-terms/dateAccepted":"dateAccepted", - "http://dublincore.org/documents/dcmi-terms/dateCopyrighted":"dateCopyrighted", - "http://dublincore.org/documents/dcmi-terms/dateSubmitted":"dateSubmitted", - "http://dublincore.org/documents/dcmi-terms/description":"description", - "http://dublincore.org/documents/dcmi-terms/educationLevel":"educationLevel", - "http://dublincore.org/documents/dcmi-terms/extent":"extent", - "http://dublincore.org/documents/dcmi-terms/format":"format", - "http://dublincore.org/documents/dcmi-terms/hasFormat":"hasFormat", - "http://dublincore.org/documents/dcmi-terms/hasPart":"hasPart", - "http://dublincore.org/documents/dcmi-terms/hasVersion":"hasVersion", - "http://dublincore.org/documents/dcmi-terms/identifier":"identifier", - "http://dublincore.org/documents/dcmi-terms/instructionalMethod":"instructionalMethod", - "http://dublincore.org/documents/dcmi-terms/isFormatOf":"isFormatOf", - "http://dublincore.org/documents/dcmi-terms/isPartOf":"isPartOf", - "http://dublincore.org/documents/dcmi-terms/isReferencedBy":"isReferencedBy", - "http://dublincore.org/documents/dcmi-terms/isReplacedBy":"isReplacedBy", - "http://dublincore.org/documents/dcmi-terms/isRequiredBy":"isRequiredBy", - "http://dublincore.org/documents/dcmi-terms/issued":"issued", - "http://dublincore.org/documents/dcmi-terms/isVersionOf":"isVersionOf", - "http://dublincore.org/documents/dcmi-terms/language":"language", - "http://dublincore.org/documents/dcmi-terms/license":"license", - "http://dublincore.org/documents/dcmi-terms/mediator":"mediator", - "http://dublincore.org/documents/dcmi-terms/medium":"medium", - "http://dublincore.org/documents/dcmi-terms/modified":"modified", - "http://dublincore.org/documents/dcmi-terms/provenance":"provenance", - "http://dublincore.org/documents/dcmi-terms/publisher":"publisher", - "http://dublincore.org/documents/dcmi-terms/references":"references", - "http://dublincore.org/documents/dcmi-terms/relation":"relation", - "http://dublincore.org/documents/dcmi-terms/replaces":"replaces", - "http://dublincore.org/documents/dcmi-terms/requires":"requires", - "http://dublincore.org/documents/dcmi-terms/rights":"rights", - "http://dublincore.org/documents/dcmi-terms/rightsHolder":"rightsHolder", - "http://dublincore.org/documents/dcmi-terms/source":"source", - "http://dublincore.org/documents/dcmi-terms/spatial":"spatial", - "http://dublincore.org/documents/dcmi-terms/subject":"subject", - "http://dublincore.org/documents/dcmi-terms/tableOfContents":"tableOfContents", - "http://dublincore.org/documents/dcmi-terms/temporal":"temporal", - "http://dublincore.org/documents/dcmi-terms/title":"title", - "http://dublincore.org/documents/dcmi-terms/type":"type", - "http://dublincore.org/documents/dcmi-terms/valid":"valid", - "http://purl.org/dc/elements/1.1/contributor":"contributor", - "http://purl.org/dc/elements/1.1/coverage":"coverage", - "http://purl.org/dc/elements/1.1/creator":"creator", - "http://purl.org/dc/elements/1.1/date":"date", - "http://purl.org/dc/elements/1.1/description":"description", - "http://purl.org/dc/elements/1.1/format":"format", - "http://purl.org/dc/elements/1.1/identifier":"identifier", - "http://purl.org/dc/elements/1.1/language":"language", - "http://purl.org/dc/elements/1.1/publisher":"publisher", - "http://purl.org/dc/elements/1.1/relation":"relation", - "http://purl.org/dc/elements/1.1/rights":"rights", - "http://purl.org/dc/elements/1.1/source":"source", - "http://purl.org/dc/elements/1.1/subject":"subject", - "http://purl.org/dc/elements/1.1/title":"title", - "http://purl.org/dc/elements/1.1/type":"type" -} - -facets = [ - 'f_creator', - 'f_mediator', - 'f_embargoedUntilDate', - 'f_license', - 'f_rights', - 'f_type', - 'f_publisher', - 'f_isPartOf', - 'f_hasVersion', - 'f_publicationDate', - 'f_contributor', - 'f_language', - 'f_rightsHolder', - 'f_source', - 'f_subject' -] \ No newline at end of file diff --git a/docs/indexingSolrRecordsUsingSupervisord/solr_worker.py b/docs/indexingSolrRecordsUsingSupervisord/solr_worker.py deleted file mode 100644 index 32bebab..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/solr_worker.py +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/env python - -from redisqueue import RedisQueue -from LogConfigParser import Config -from solrFields import solr_fields_mapping - -import sys -from time import sleep -from rdflib import URIRef -import simplejson - -from recordsilo import Granary -from solr import SolrConnection - -DB_ROOT = "/opt/RDFDatabank" - -class NoSuchSilo(Exception): - pass - -def gather_document(silo_name, item): - graph = item.get_graph() - document = {'uuid':item.metadata['uuid'], 'id':item.item_id, 'silo':silo_name} - for (_,p,o) in graph.triples((URIRef(item.uri), None, None)): - #print p,o - #if p.startswith("http://purl.org/dc/terms/"): - if p in solr_fields_mapping: - #field = p[len("http://purl.org/dc/terms/"):].encode("utf-8") - field = solr_fields_mapping[p] - if not document.has_key(field): - document[field] = [] - #print "Adding %s to %s" % (o, field) - document[field].append(unicode(o).encode("utf-8")) - else: - if not document.has_key('text'): - document['text'] = [] - #print "Adding %s to %s - (from %s)" % (o, "text", p) - document['text'].append(unicode(o).encode("utf-8")) - #print document - return document - -if __name__ == "__main__": - c = Config() - redis_section = "redis" - worker_section = "worker_solr" - worker_number = sys.argv[1] - if len(sys.argv) == 3: - if "redis_%s" % sys.argv[2] in c.sections(): - redis_section = "redis_%s" % sys.argv[2] - - rq = RedisQueue(c.get(worker_section, "listento"), "solr_%s" % worker_number, - db=c.get(redis_section, "db"), - host=c.get(redis_section, "host"), - port=c.get(redis_section, "port") - ) - rdfdb_config = Config("%s/production.ini" % DB_ROOT) - granary_root = rdfdb_config.get("app:main", "granary.store", 0, {'here':DB_ROOT}) - - g = Granary(granary_root) - - solr = SolrConnection(c.get(worker_section, "solrurl")) - - idletime = 2 - - while(True): - sleep(idletime) - line = rq.pop() - if not line: - continue - msg = simplejson.loads(line) - # solr switch - silo_name = msg['silo'] - if silo_name not in g.silos: - raise NoSuchSilo - s = g.get_rdf_silo(silo_name) - if msg['type'] == "c" or msg['type'] == "u" or msg['type'] == "embargo": - # Creation - itemid = msg.get('id') - print "Got creation message on id:%s in silo:%s" % (itemid, silo_name) - if itemid and s.exists(itemid): - item = s.get_item(itemid) - solr_doc = gather_document(silo_name, item) - try: - solr.add(_commit=True, **solr_doc) - except: - f = open('/opt/logs/solr_error.log', 'a') - f.write("Error adding record (creating) id:%s in silo:%s" % (itemid, silo_name)) - f.close() - rq.task_complete() - elif msg['type'] == "d": - # Deletion - itemid = msg.get('id') - if itemid and s.exists(itemid): - solr.delete(itemid) - solr.commit() - rq.task_complete() - """ - elif msg['type'] == "embargo": - itemid = msg.get('id') - if itemid and s.exists(itemid): - if msg['embargoed'] in ['false', 'False', 0, False]: - # Embargo removed: update solr - item = s.get_item(itemid) - solr_doc = gather_document(silo_name, item) - try: - solr.add(_commit=True, **solr_doc) - except: - f = open('/opt/logs/solr_error.log', 'a') - f.write("Error adding record (embargo change) id:%s in silo:%s" % (itemid, silo_name)) - f.close() - else: - solr.delete(itemid) - solr.commit() - rq.task_complete() - except NoSuchSilo: - print "ERROR: Silo doesn't exist %s" % silo_name - print line - rq.task_complete() - """ diff --git a/docs/indexingSolrRecordsUsingSupervisord/supervisor_startup.sh b/docs/indexingSolrRecordsUsingSupervisord/supervisor_startup.sh deleted file mode 100644 index 667f8fb..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/supervisor_startup.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -su databankadmin --command "exec /usr/local/bin/supervisord -c /opt/workers/supervisord.conf" - diff --git a/docs/indexingSolrRecordsUsingSupervisord/supervisord.conf b/docs/indexingSolrRecordsUsingSupervisord/supervisord.conf deleted file mode 100644 index 098e111..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/supervisord.conf +++ /dev/null @@ -1,29 +0,0 @@ -[unix_http_server] -username = guest -password = guest -file = /tmp/supervisor.sock - -[supervisord] -minfds = 1024 -minprocs = 200 -loglevel = info -logfile = /tmp/supervisord.log -logfile_maxbytes = 50MB -nodaemon = false -pidfile = /tmp/supervisord.pid -logfile_backups = 10 - -[supervisorctl] -serverurl = unix:///tmp/supervisor.sock - -[rpcinterface:supervisor] -supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface - -[include] -files = workers_enabled/*.conf - -[inet_http_server] -username = guest -password = guest -port = 127.0.0.1:9001 - diff --git a/docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_articlelogger.conf b/docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_articlelogger.conf deleted file mode 100644 index 30b3481..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_articlelogger.conf +++ /dev/null @@ -1,13 +0,0 @@ -[program:logger_articlelogger] -autorestart = true -numprocs = 1 -startretries = 3 -redirect_stderr = True -stopwaitsecs = 10 -process_name = logger_articlelogger_%(process_num)s -priority = 999 -command = ./logfromqueue.py %(process_num)s logger_articlelogger -autostart = true -startsecs = 10 -stdout_logfile = workerlogs/articlelogger.log - diff --git a/docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_auditlogger.conf b/docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_auditlogger.conf deleted file mode 100644 index 65c219d..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/workers_available/logger_auditlogger.conf +++ /dev/null @@ -1,13 +0,0 @@ -[program:logger_auditlogger] -autorestart = true -numprocs = 1 -startretries = 3 -redirect_stderr = True -stopwaitsecs = 10 -process_name = logger_auditlogger_%(process_num)s -priority = 666 -directory = /opt/workers/ -command = /opt/workers/logfromqueue.py %(process_num)s logger_auditlogger -autostart = true -startsecs = 10 -stdout_logfile = /opt/workers/workerlogs/auditlogger.log diff --git a/docs/indexingSolrRecordsUsingSupervisord/workers_available/process_redis.conf b/docs/indexingSolrRecordsUsingSupervisord/workers_available/process_redis.conf deleted file mode 100644 index b024366..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/workers_available/process_redis.conf +++ /dev/null @@ -1,14 +0,0 @@ -[program:process_redis] -autorestart = true -numprocs = 1 -startretries = 3 -redirect_stderr = True -stopwaitsecs = 10 -process_name = process_redis_%(process_num)s -priority = 555 -directory = /opt/workers/ -command = /opt/workers/redis-1.2.6/redis-server -autostart = true -startsecs = 10 -stdout_logfile = /opt/workers/workerlogs/process_redis.log - diff --git a/docs/indexingSolrRecordsUsingSupervisord/workers_available/process_solr.conf b/docs/indexingSolrRecordsUsingSupervisord/workers_available/process_solr.conf deleted file mode 100644 index c866f22..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/workers_available/process_solr.conf +++ /dev/null @@ -1,14 +0,0 @@ -[program:process_solr] -autorestart = true -numprocs = 1 -startretries = 3 -redirect_stderr = True -stopwaitsecs = 10 -process_name = process_solr_%(process_num)s -priority = 999 -directory = /opt/solr/ -command = /opt/solr/start_solr.sh -autostart = true -startsecs = 10 -stdout_logfile = /opt/workers/workerlogs/process_solr.log - diff --git a/docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_broker.conf b/docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_broker.conf deleted file mode 100644 index d7f8b2b..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_broker.conf +++ /dev/null @@ -1,14 +0,0 @@ -[program:worker_broker] -autorestart = true -numprocs = 2 -startretries = 3 -redirect_stderr = True -stopwaitsecs = 10 -process_name = worker_broker_%(process_num)s -priority = 777 -directory = /opt/workers/ -command = /opt/workers/broker.py %(process_num)s -autostart = true -startsecs = 10 -stdout_logfile = /opt/workers/workerlogs/broker.log - diff --git a/docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_solr.conf b/docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_solr.conf deleted file mode 100644 index a659549..0000000 --- a/docs/indexingSolrRecordsUsingSupervisord/workers_available/worker_solr.conf +++ /dev/null @@ -1,14 +0,0 @@ -[program:worker_solr] -autorestart = true -numprocs = 2 -startretries = 3 -redirect_stderr = True -stopwaitsecs = 10 -process_name = worker_solr_%(process_num)s -priority = 888 -directory = /opt/workers/ -command = /opt/workers/solr_worker.py %(process_num)s -autostart = true -startsecs = 10 -stdout_logfile = /opt/workers/workerlogs/solr_worker.log - diff --git a/docs/using_databank_api/DatabankDemo.py b/docs/using_databank_api/DatabankDemo.py index 4045c17..4519576 100644 --- a/docs/using_databank_api/DatabankDemo.py +++ b/docs/using_databank_api/DatabankDemo.py @@ -1,33 +1,9 @@ -#-*- coding: utf-8 -*- -""" -Copyright (c) 2012 University of Oxford - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, --INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -""" - #Databank API demo import urllib2 import base64 import urllib -from multipartform import MultiPartForm +from lib.multipartform import MultiPartForm #=============================================================================== #Using urllib2 to create a package in Databank @@ -55,7 +31,7 @@ #Add a file form = MultiPartForm() filename = "solrconfig.xml" -filepath = "./solrconfig.xml" +filepath = "data/unicode07.xml" form.add_file('file', filename, fileHandle=open(filepath)) # Build the request @@ -75,4 +51,4 @@ ans2 = urllib2.urlopen(req2) print print 'SERVER RESPONSE:' -ans2.read() \ No newline at end of file +ans2.read() diff --git a/docs/using_databank_api/README b/docs/using_databank_api/README index a54356a..d5ef618 100644 --- a/docs/using_databank_api/README +++ b/docs/using_databank_api/README @@ -1,15 +1,25 @@ Guide to using the RDFDatabank API +The directory contains example python code that services can use for interacting with the Databank API. +There are two sets of examples +1. main.py + This uses the helper class HTTP_request.py which in turn uses httplib to make http calls. + It has code on using GET, POST, PUT and DELETE methods for interacting with the API and works over both http / https. + +2. DatabankDemo.py or postingToDatabank.py + This is exmaple code to POST items to Databank using urllib2. + The form data is constructed is slightly differently in DatabankDemo.py and postingToDatabank.py which can be seen in multipartform.py and multipart.py respectively. + RDFDatabank was developed by Ben O'Steen and Anusha Ranganathan at the Bodleian Libraries, Universiy of Oxford The purpose of DataBank is to provide a robust and efficient system for the safe storage of and open access to research data. The API documentation for using RDFdatabank is at -http://databank.ora.ox.ac.uk/api or -https://github.com/anusharanganathan/RDFDatabank/tree/master/rdfdatabank/public/static/api_files +http://databank-vm1.oerc.ox.ac.uk/api or +https://github.com/databank/RDFDatabank/tree/master/rdfdatabank/public/static/api_files -The source code for databank is available at https://github.com/anusharanganathan/RDFDatabank. -The test code for databank can be found in https://github.com/anusharanganathan/RDFDatabank/tree/master/rdfdatabank/tests/RDFDatabank +The source code for databank is available at https://github.com/dataflow/RDFDatabank. +The test code for databank can be found in https://github.com/dataflow/RDFDatabank/tree/master/rdfdatabank/tests/RDFDatabank Note: DataBank is not intended to store large-scale data sets such as grid data or other vast data sets. diff --git a/docs/using_databank_api/HTTP_request.py b/docs/using_databank_api/lib/HTTP_request.py similarity index 93% rename from docs/using_databank_api/HTTP_request.py rename to docs/using_databank_api/lib/HTTP_request.py index bd76624..52d21fd 100644 --- a/docs/using_databank_api/HTTP_request.py +++ b/docs/using_databank_api/lib/HTTP_request.py @@ -1,4 +1,3 @@ -#-*- coding: utf-8 -*- """ Copyright (c) 2012 University of Oxford @@ -116,17 +115,21 @@ def encodeFormData(self, params): return reqtype, reqdata def doRequest(self, command, resource, reqdata=None, reqheaders={}): + #print "User:", self._endpointuser + #print "Host:", self._endpointhost + #print "Resource:", resource if self._endpointuser: auth = base64.encodestring("%s:%s" % (self._endpointuser, self._endpointpass)).strip() reqheaders["Authorization"] = "Basic %s" % auth - hc = httplib.HTTPConnection(self._endpointhost) - path = self.getRequestPath(resource) + hc = httplib.HTTPConnection(self._endpointhost) + #hc = httplib.HTTPSConnection(self._endpointhost) + #resource = self.getRequestPath(resource) response = None responsedata = None repeat = 10 - while path and repeat > 0: + while resource and repeat > 0: repeat -= 1 - hc.request(command, path, reqdata, reqheaders) + hc.request(command, resource, reqdata, reqheaders) response = hc.getresponse() if response.status != 301: break path = response.getheader('Location', None) @@ -138,6 +141,9 @@ def doRequest(self, command, resource, reqdata=None, reqheaders={}): response.read() # Seems to be needed to free up connection for new request logger.debug("Status: %i %s" % (response.status, response.reason)) responsedata = response.read() + #print "Response data", responsedata + #print "Response status", response.status + #print "Response reason", response.reason hc.close() return (response, responsedata) diff --git a/docs/using_databank_api/lib/__init__.py b/docs/using_databank_api/lib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/docs/using_databank_api/multipart.py b/docs/using_databank_api/lib/multipart.py similarity index 100% rename from docs/using_databank_api/multipart.py rename to docs/using_databank_api/lib/multipart.py diff --git a/docs/using_databank_api/multipartform.py b/docs/using_databank_api/lib/multipartform.py similarity index 65% rename from docs/using_databank_api/multipartform.py rename to docs/using_databank_api/lib/multipartform.py index 0bfd916..11a301d 100644 --- a/docs/using_databank_api/multipartform.py +++ b/docs/using_databank_api/lib/multipartform.py @@ -1,27 +1,3 @@ -#-*- coding: utf-8 -*- -""" -Copyright (c) 2012 University of Oxford - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, --INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -""" - import itertools import mimetools import mimetypes diff --git a/docs/using_databank_api/main.py b/docs/using_databank_api/main.py index d9f7748..6a904df 100644 --- a/docs/using_databank_api/main.py +++ b/docs/using_databank_api/main.py @@ -33,49 +33,65 @@ """ import json as simplejson -from HTTP_request import HTTPRequest +from lib.HTTP_request import HTTPRequest #--CONFIG------------------------------------------------------- -host = 'databank.ora.ox.ac.uk' -user_name = '' -password = '' +host = 'databank-vm1.oerc.ox.ac.uk' +user_name = 'admin' +password = 'test' datastore = HTTPRequest(endpointhost=host) datastore.setRequestUserPass(endpointuser=user_name, endpointpass=password) #--HTTP GET------------------------------------------------------- #Get a list of silos accessible to the user (resp, respdata) = datastore.doHTTP_GET(resource="/silos", expect_type="application/JSON") +print "Get list of silos" +print resp.status, resp.reason if resp.status >= 200 and resp.status < 300: -silos_list = simplejson.loads(respdata) + silos_list = simplejson.loads(respdata) + print "number of silos", len(silos_list) +print "-"*40, "\n\n" #--HTTP GET------------------------------------------------------- #Get a list of all the datasets in the silo 'sandbox' (resp, respdata) = datastore.doHTTP_GET(resource="/sandbox", expect_type="application/JSON") +print "Get list of datasets" +print resp.status, resp.reason if resp.status >= 200 and resp.status < 300: -dataset_list = simplejson.loads(respdata) + dataset_list = simplejson.loads(respdata) + print "number of datasets", len(dataset_list.keys()) +else: + print "Error getting list of datasets" +print "-"*40, "\n\n" + +#--HTTP DELETE------------------------------------------------------- +#Delete the dataset 'TestSubmission' in the silo 'sandbox' +(resp, respdata) = datastore.doHTTP_DELETE(resource="/sandbox/datasets/TestSubmission") +print "deleting dataset" +print resp.status, resp.reason +print respdata +print "-"*40, "\n\n" #--HTTP POST------------------------------------------------------- #Create a new dataset 'TestSubmission' in the silo 'sandbox' fields = [ -("id", "TestSubmission") + ("id", "TestSubmission") ] files =[] (reqtype, reqdata) = datastore.encode_multipart_formdata(fields, files) -(resp, respdata) = datastore.doHTTP_POST(reqdata, data_type=reqtype, resource="/sandbox/datsets", expect_type="application/JSON") -if resp.status >= 200 and resp.status < 300: - print resp.status, resp.reason - print respdata - -#--HTTP DELETE------------------------------------------------------- -#Delete the dataset 'TestSubmission' in the silo 'sandbox' -(resp, respdata) = datastore.doHTTP_DELETE(resource="/sandbox/datasets/TestSubmission") +(resp, respdata) = datastore.doHTTP_POST(reqdata, data_type=reqtype, resource="/sandbox/datasets", expect_type="application/JSON") +print "Create new dataset" print resp.status, resp.reason -print respdata +if resp.status >= 200 and resp.status < 300: + print respdata +else: + print "Error creating dataset" +print "-"*40, "\n\n" #--HTTP POST------------------------------------------------------- #Upload file to dataset - POST file to dataset 'TestSubmission' in silo 'sandbox' (path is /sandbox/datasets/TestSubmission) -file_name="testdir.zip" -file_path="data/testdir.zip" +file_name="testrdf4.zip" +file_path="data/testrdf4.zip" fields = [] zipdata = open(file_path).read() files = [ @@ -83,8 +99,33 @@ ] (reqtype, reqdata) = datastore.encode_multipart_formdata(fields, files) (resp, respdata) = datastore.doHTTP_POST(reqdata, data_type=reqtype, resource="/sandbox/datasets/TestSubmission", expect_type="application/JSON") +print "Post file testrdf4.zip to dataset" print resp.status, resp.reason -print respdata +if resp.status >= 200 and resp.status < 300: + print respdata +else: + print "Error posting file to dataset" +print "-"*40, "\n\n" + +#--HTTP POST------------------------------------------------------- +#Upload file to dataset and test munging. POST file to dataset 'TestSubmission' in silo 'sandbox' (path is /sandbox/datasets/TestSubmission) +#file_name="unicode07.xml" +file_name="manifest.rdf" +file_path="data/unicode07.xml" +fields = [] +zipdata = open(file_path).read() +files = [ + ("file", file_name, zipdata, "application/rdf+xml") +] +(reqtype, reqdata) = datastore.encode_multipart_formdata(fields, files) +(resp, respdata) = datastore.doHTTP_POST(reqdata, data_type=reqtype, resource="/sandbox/datasets/TestSubmission", expect_type="application/JSON") +print "Post file unicode07.xml to dataset" +print resp.status, resp.reason +if resp.status >= 200 and resp.status < 300: + print respdata +else: + print "Error posting file to dataset" +print "-"*40, "\n\n" #--HTTP PUT------------------------------------------------------- #example metadata constructed in rdf. Add this metadata to the manifest (PUT this in manifest.rdf file) @@ -94,15 +135,41 @@ xmlns:ore='http://www.openarchives.org/ore/terms/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' > - + Test dataset Carl Sagan abstract """ -(resp, respdata) = datastore.doHTTP_PUT(metadata_content, resource="sandbox/datasets/TestSubmission/manifest.rdf", expect_type="text/plain") +(resp, respdata) = datastore.doHTTP_PUT(metadata_content, resource="/sandbox/datasets/TestSubmission/manifest.rdf", expect_type="text/plain") +print "Putting manifest data into dataset" print resp.status, resp.reason -print respdata +if resp.status >= 200 and resp.status < 300: + print respdata +else: + print "Error putting manifest data into dataset" +print "-"*40, "\n\n" + +#--HTTP POST------------------------------------------------------- +#Unpack zip file in dataset +file_name="testrdf4.zip" +fields = [] +fields = [ + ("filename", "testrdf4.zip"), + ("id", "TestSubmission") +] +zipdata = open(file_path).read() +files = [] +(reqtype, reqdata) = datastore.encode_multipart_formdata(fields, files) +(resp, respdata) = datastore.doHTTP_POST(reqdata, data_type=reqtype, resource="/sandbox/items/TestSubmission", expect_type="application/JSON") +print "Post file testrdf4.zip to dataset for unpacking" +print resp.status, resp.reason +if resp.status >= 200 and resp.status < 300: + print respdata +else: + print "Error unpacking file to dataset" +print "-"*40, "\n\n" #--------------------------------------------------------- + diff --git a/docs/using_databank_api/postingToDatabank.py b/docs/using_databank_api/postingToDatabank.py index 89326b3..095f8b2 100644 --- a/docs/using_databank_api/postingToDatabank.py +++ b/docs/using_databank_api/postingToDatabank.py @@ -1,31 +1,7 @@ -#-*- coding: utf-8 -*- -""" -Copyright (c) 2012 University of Oxford - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, --INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -""" - import urllib2 import base64 import urllib -from multipart import MultiPartFormData +from lib.multipart import MultiPartFormData import os #=============================================================================== @@ -54,7 +30,7 @@ #Add a file filename = "solrconfig.xml" -filepath = "./solrconfig.xml" +filepath = "data/unicode07.xml" f = open(filepath, 'rb') stat_info = os.stat(filepath) @@ -86,4 +62,4 @@ #print print 'SERVER RESPONSE:' ans2.read() -#=============================================================================== \ No newline at end of file +#=============================================================================== diff --git a/production-jenkins.ini b/production-jenkins.ini index 66c8267..c0c6e0a 100644 --- a/production-jenkins.ini +++ b/production-jenkins.ini @@ -44,28 +44,30 @@ use = egg:rdfdatabank full_stack = true static_files = true -cache_dir = %(here)s/data +sqlalchemy.url = mysql://databanksqladmin:d6sqL4dm;n@localhost:3306/databankauth +sqlalchemy.pool_recycle = 3600 + +cache_dir = /var/cache/databank beaker.session.key = rdfdatabank beaker.session.secret = somesecret who.config_file = %(here)s/who.ini who.log_level = info who.log_file = /var/log/databank/who.log -#who.log_file = %(here)s/logs/who.log redis.host = localhost granary.store = %(here)s/silos granary.uri_root = http://dataflow-jenkins.bodleian.ox.ac.uk/ -#profile.log_filename = %(here)s/logs/profile.log +#profile.log_filename = /var/log/databank/profile.log #profile.path = /__profile__ -auth.file = %(here)s/passwd -auth.info = %(here)s/rdfdatabank/config/users.py +#auth.file = /var/lib/databank/passwd +#auth.info = /var/lib/databank/rdfdatabank/config/users.py -doi.config = %(here)s/rdfdatabank/config/doi_config.py -doi.count = %(here)s/rdfdatabank/config/doi_count +doi.config = /var/lib/databank/rdfdatabank/config/doi_config.py +doi.count = /var/lib/databank/rdfdatabank/config/doi_count broadcast.to = redis broadcast.queue = silochanges @@ -74,13 +76,14 @@ metadata.embargoed = False solr.host = http://localhost:8080/solr naming_rule = [^0-9a-zA-Z_\-\:] +naming_rule_humanized = Numbers, alphabets and -: formats_served = text/html,text/xhtml,text/plain,application/json,application/rdf+xml,text/xml,text/rdf+n3,application/x-turtle,text/rdf+ntriples,text/rdf+nt publisher = Bodleian Libraries, University of Oxford rights = http://ora.ouls.ox.ac.uk/objects/uuid%3A1d00eebb-8fed-46ad-8e38-45dbdb4b224c license = CC0 1.0 Universal (CC0 1.0). See http://creativecommons.org/publicdomain/zero/1.0/legalcode #license = Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. See http://creativecommons.org/licenses/by-nc-sa/3.0/ -api.version = 0.2 +api.version = 0.3 # If you'd like to fine-tune the individual locations of the cache data dirs # for the Cache data, or the Session saves, un-comment the desired settings diff --git a/production.ini b/production.ini index 5096080..30185de 100644 --- a/production.ini +++ b/production.ini @@ -60,8 +60,8 @@ redis.host = localhost granary.store = /silos granary.uri_root = http://databank/ -auth.file = /var/lib/databank/passwd -auth.info = /var/lib/databank/rdfdatabank/config/users.py +#auth.file = /var/lib/databank/passwd +#auth.info = /var/lib/databank/rdfdatabank/config/users.py doi.config = /var/lib/databank/rdfdatabank/config/doi_config.py doi.count = /var/lib/databank/rdfdatabank/config/doi_count @@ -73,13 +73,14 @@ metadata.embargoed = False solr.host = http://localhost:8080/solr naming_rule = [^0-9a-zA-Z_\-\:] +naming_rule_humanized = Numbers, alphabets and -: formats_served = text/html,text/xhtml,text/plain,application/json,application/rdf+xml,text/xml,text/rdf+n3,application/x-turtle,text/rdf+ntriples,text/rdf+nt publisher = Bodleian Libraries, University of Oxford rights = http://ora.ouls.ox.ac.uk/objects/uuid%3A1d00eebb-8fed-46ad-8e38-45dbdb4b224c license = CC0 1.0 Universal (CC0 1.0). See http://creativecommons.org/publicdomain/zero/1.0/legalcode #license = Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. See http://creativecommons.org/licenses/by-nc-sa/3.0/ -api.version = 0.2 +api.version = 0.3 # If you'd like to fine-tune the individual locations of the cache data dirs # for the Cache data, or the Session saves, un-comment the desired settings diff --git a/rdfdatabank/config/middleware.py b/rdfdatabank/config/middleware.py index ae99e76..01cb991 100644 --- a/rdfdatabank/config/middleware.py +++ b/rdfdatabank/config/middleware.py @@ -84,6 +84,7 @@ def make_app(global_conf, full_stack=True, static_files=True, **app_conf): app = SessionMiddleware(app, config) app = CacheMiddleware(app, config) + #TODO: Check if the new error controller works with sword server # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) if asbool(full_stack): # Handle Python exceptions diff --git a/rdfdatabank/config/routing.py b/rdfdatabank/config/routing.py index 4008cb9..9e4ffc9 100644 --- a/rdfdatabank/config/routing.py +++ b/rdfdatabank/config/routing.py @@ -48,7 +48,7 @@ def make_map(): _redirect_code='301 Moved Permanently') #Special controller to redirect datasets from databank.ouls to databank.ora - map.connect('/objects/{id}', controller='redirect', action='index') + #map.connect('/objects/{id}', controller='redirect', action='index') map.connect("/login", controller='account', action='login') map.connect("/logout", controller='account', action='logout') @@ -74,8 +74,6 @@ def make_map(): map.connect('/{silo}/datasets', controller='datasets', action='siloview') map.connect('/{silo}/datasets/{id}', controller='datasets', action='datasetview') - map.connect('/{silo}/datasets/{id}/version{vnum}', controller='datasets', action='datasetview_vnum') - map.connect('/{silo}/datasets/{id}/{path:.*}/version{vnum}', controller='datasets', action='itemview_vnum') map.connect('/{silo}/datasets/{id}/{path:.*}', controller='datasets', action='itemview') map.connect('/{silo}/items', controller='items', action='siloview') @@ -86,10 +84,16 @@ def make_map(): map.connect('/{silo}/states', controller='states', action='siloview') map.connect('/{silo}/states/{id}', controller='states', action='datasetview') - map.connect('/{silo}/states/{id}/version{vnum}', controller='states', action='datasetview_vnum') map.connect('/{silo}/doi/{id}', controller='doi', action='datasetview') + # SWORDv2 Configuration + map.connect('/swordv2/service-document', controller="sword", action="service_document") # From which to retrieve the service document + map.connect('/swordv2/silo/{path:.*?}', controller="sword", action="collection") # Representing a Collection as listed in the service document + map.connect('/swordv2/edit-media/{path:.*?}', controller="sword", action="media_resource") # The URI used in atom:link@rel=edit-media + map.connect('/swordv2/edit/{path:.*?}', controller="sword", action="container") # The URI used in atom:link@rel=edit + map.connect('/swordv2/statement/{path:.*?}', controller="sword", action="statement") # The URI used in atom:link@rel=sword:statement + map.connect('/{controller}') map.connect('/{controller}/{action}') map.connect('/{controller}/{action}/{id}') diff --git a/rdfdatabank/controllers/datasets.py b/rdfdatabank/controllers/datasets.py index bc6a102..02f52d4 100644 --- a/rdfdatabank/controllers/datasets.py +++ b/rdfdatabank/controllers/datasets.py @@ -133,7 +133,7 @@ def siloview(self, silo): response.content_type = "text/plain" response.status_int = 400 response.status = "400 Bad request. Dataset name not valid" - return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule + return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule_humanized del params['id'] item = create_new(c_silo, id, ident['repoze.who.userid'], **params) @@ -201,10 +201,12 @@ def datasetview(self, silo, id): abort(403, "Forbidden") silos_admin = ag.authz(granary_list, ident, permission='administrator') silos_manager = ag.authz(granary_list, ident, permission='manager') - elif http_method == "GET": + + if http_method in ["GET", "DELETE"]: if not c_silo.exists(id): abort(404) + if http_method == "GET": embargoed = False item = c_silo.get_item(id) @@ -271,8 +273,6 @@ def datasetview(self, silo, id): else: c.view = 'user' - # Method determination - if http_method == "GET": c.embargos = {} c.embargos[id] = is_embargoed(c_silo, id) c.parts = item.list_parts(detailed=True) @@ -353,55 +353,24 @@ def datasetview(self, silo, id): #Whoops - nothing staisfies - default to text/html return render('/datasetview.html') elif http_method == "POST": - params = request.POST + code = None + #Create new dataset if it does not exist if not c_silo.exists(id): - #Create new data-package. Any authorized user can do this if not allowable_id2(id): response.content_type = "text/plain" response.status_int = 400 response.status = "400 Bad request. Dataset name not valid" - return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule - if 'id' in params.keys(): - del params['id'] + return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule_humanized + params = {} item = create_new(c_silo, id, ident['repoze.who.userid'], **params) - - # Broadcast change as message - try: - ag.b.creation(silo, id, ident=ident['repoze.who.userid']) - except: - pass - - # conneg return - accept_list = None - if 'HTTP_ACCEPT' in request.environ: - try: - accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) - except: - accept_list= [MT("text", "html")] - if not accept_list: - accept_list= [MT("text", "html")] - mimetype = accept_list.pop(0) - while(mimetype): - if str(mimetype).lower() in ["text/html", "text/xhtml"]: - # probably a browser - redirect to newly created dataset - redirect(url(controller="datasets", action="datasetview", silo=silo, id=id)) - elif str(mimetype).lower() in ["text/plain", "application/json"]: - response.content_type = "text/plain" - response.status_int = 201 - response.status = "201 Created" - response.headers["Content-Location"] = url(controller="datasets", action="datasetview", silo=silo, id=id) - return "201 Created" - try: - mimetype = accept_list.pop(0) - except IndexError: - mimetype = None - # Whoops - nothing satisfies - return text/plain - response.content_type = "text/plain" - response.status_int = 201 - response.headers["Content-Location"] = url(controller="datasets", action="datasetview", silo=silo, id=id) + code = 201 response.status = "201 Created" - return "201 Created" - elif params.has_key('embargoed') and params['embargoed']: + response.status_int = 201 + response.headers["Content-Location"] = url(controller="datasets", action="datasetview", id=id, silo=silo) + response_message = "201 Created empyt data package" + #Update embargo info + params = request.POST + if params.has_key('embargoed') and params['embargoed']: item = c_silo.get_item(id) creator = None if item.manifest and item.manifest.state and 'metadata' in item.manifest.state and item.manifest.state['metadata'] and \ @@ -456,38 +425,15 @@ def datasetview(self, silo, id): item.add_triple(item.uri, u"oxds:currentVersion", item.currentversion) item.sync() - # conneg return - accept_list = None - if 'HTTP_ACCEPT' in request.environ: - try: - accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) - except: - accept_list= [MT("text", "html")] - if not accept_list: - accept_list= [MT("text", "html")] - mimetype = accept_list.pop(0) - while(mimetype): - if str(mimetype).lower() in ["text/html", "text/xhtml"]: - redirect(url(controller="datasets", action="datasetview", id=id, silo=silo)) - elif str(mimetype).lower() in ["text/plain", "application/json"]: - response.content_type = "text/plain" - response.status_int = 204 - response.status = "204 Updated" - return - try: - mimetype = accept_list.pop(0) - except IndexError: - mimetype = None - #Whoops - nothing satisfies - return text / plain - response.content_type = "text/plain" - response.status_int = 204 - response.status = "204 Updated" - return - elif params.has_key('file'): + if not code: + code = 204 + response.content_type = "text/plain" + response.status_int = 204 + response.status = "204 Updated" + response_message = None + if params.has_key('file'): # File upload by a not-too-savvy method - Service-orientated fallback: # Assume file upload to 'filename' - params = request.POST - item = c_silo.get_item(id) creator = None if item.manifest and item.manifest.state and 'metadata' in item.manifest.state and item.manifest.state['metadata'] and \ @@ -565,33 +511,8 @@ def datasetview(self, silo, id): response.status = "204 Updated" response.status_int = 204 response_message = None - - # conneg return - accept_list = None - if 'HTTP_ACCEPT' in request.environ: - try: - accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) - except: - accept_list= [MT("text", "html")] - if not accept_list: - accept_list= [MT("text", "html")] - mimetype = accept_list.pop(0) - while(mimetype): - if str(mimetype).lower() in ["text/html", "text/xhtml"]: - redirect(url(controller="datasets", action="datasetview", id=id, silo=silo)) - elif str(mimetype).lower() in ["text/plain"]: - response.content_type = "text/plain" - return response_message - try: - mimetype = accept_list.pop(0) - except IndexError: - mimetype = None - #Whoops - nothing satisfies - return text / plain - response.content_type = "text/plain" - return response_message elif params.has_key('text'): # Text upload convenience service - params = request.POST item = c_silo.get_item(id) filename = params.get('filename') if not filename: @@ -665,38 +586,35 @@ def datasetview(self, silo, id): response.status = "204 Updated" response.status_int = 204 response_message = None - # conneg return - accept_list = None - if 'HTTP_ACCEPT' in request.environ: - try: - accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) - except: - accept_list= [MT("text", "html")] - if not accept_list: - accept_list= [MT("text", "html")] - mimetype = accept_list.pop(0) - while(mimetype): - if str(mimetype).lower() in ["text/html", "text/xhtml"]: - redirect(url(controller="datasets", action="datasetview", id=id, silo=silo)) - elif str(mimetype).lower() in ["text/plain", "application/json"]: - response.content_type = "text/plain" - return response_message - try: - mimetype = accept_list.pop(0) - except IndexError: - mimetype = None - #Whoops - nothing satisfies - return text / plain - response.content_type = "text/plain" - return response_message - else: + if not code: response.content_type = "text/plain" response.status_int = 400 response.status = "400 Bad request" return "400 Bad Request. No valid parameters found." + # conneg return + accept_list = None + if 'HTTP_ACCEPT' in request.environ: + try: + accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) + except: + accept_list= [MT("text", "html")] + if not accept_list: + accept_list= [MT("text", "html")] + mimetype = accept_list.pop(0) + while(mimetype): + if str(mimetype).lower() in ["text/html", "text/xhtml"]: + redirect(url(controller="datasets", action="datasetview", id=id, silo=silo)) + elif str(mimetype).lower() in ["text/plain", "application/json"]: + response.content_type = "text/plain" + return response_message + try: + mimetype = accept_list.pop(0) + except IndexError: + mimetype = None + #Whoops - nothing satisfies - return text / plain + response.content_type = "text/plain" + return response_message elif http_method == "DELETE": - if not c_silo.exists(id): - abort(404) - item = c_silo.get_item(id) creator = None if item.manifest and item.manifest.state and 'metadata' in item.manifest.state and item.manifest.state['metadata'] and \ @@ -719,115 +637,6 @@ def datasetview(self, silo, id): response.status = "200 OK" return "{'ok':'true'}" # required for the JQuery magic delete to succede. - @rest.restrict('GET') - def datasetview_vnum(self, silo, id, vnum): - if not ag.granary.issilo(silo): - abort(404) - c.silo_name = silo - c.id = id - c_silo = ag.granary.get_rdf_silo(silo) - - if not c_silo.exists(id): - abort(404) - - item = c_silo.get_item(id) - vnum = str(vnum) - if not vnum in item.manifest['versions']: - abort(404) - - # filename options - used to check if DOI redirects the parameters - c.options = request.GET - - #Set the item's version cursor - item.set_version_cursor(vnum) - c.version = vnum - - embargoed = False - c.editor = False - - if item.metadata.get('embargoed') not in ["false", 0, False]: - embargoed = True - if embargoed: - if not request.environ.get('repoze.who.identity'): - abort(401, "Not Authorized") - ident = request.environ.get('repoze.who.identity') - c.ident = ident - granary_list = ag.granary.silos - silos = ag.authz(granary_list, ident) - if silo not in silos: - abort(403, "Forbidden") - c.editor = silo in silos - elif request.environ.get('repoze.who.identity'): - ident = request.environ.get('repoze.who.identity') - c.ident = ident - granary_list = ag.granary.silos - silos = ag.authz(granary_list, ident) - c.editor = silo in silos - - # Check to see if embargo is on: - c.embargos = {} - c.embargos[id] = is_embargoed(c_silo, id) - c.readme_text = None - c.parts = item.list_parts(detailed=True) - c.manifest_pretty = item.rdf_to_string(format="pretty-xml") - if "README" in c.parts.keys(): - c.readme_text = get_readme_text(item) - - accept_list = None - if 'HTTP_ACCEPT' in request.environ: - try: - accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) - except: - accept_list= [MT("text", "html")] - if not accept_list: - accept_list= [MT("text", "html")] - mimetype = accept_list.pop(0) - - while(mimetype): - if str(mimetype).lower() in ["text/html", "text/xhtml"]: - return render('/datasetview_version.html') - elif str(mimetype).lower() in ["text/plain", "application/json"]: - response.content_type = 'application/json; charset="UTF-8"' - response.status_int = 200 - response.status = "200 OK" - returndata = {} - returndata['embargos'] = c.embargos - returndata['view'] = c.view - returndata['editor'] = c.editor - returndata['parts'] = {} - for part in c.parts: - returndata['parts'][part] = serialisable_stat(c.parts[part]) - returndata['readme_text'] = c.readme_text - returndata['manifest_pretty'] = c.manifest_pretty - return simplejson.dumps(returndata) - elif str(mimetype).lower() in ["application/rdf+xml", "text/xml"]: - response.content_type = 'application/rdf+xml; charset="UTF-8"' - response.status_int = 200 - response.status = "200 OK" - return c.manifest_pretty - elif str(mimetype).lower() == "text/rdf+n3": - response.content_type = 'text/rdf+n3; charset="UTF-8"' - response.status_int = 200 - response.status = "200 OK" - return item.rdf_to_string(format="n3") - elif str(mimetype).lower() == "application/x-turtle": - response.content_type = 'application/x-turtle; charset="UTF-8"' - response.status_int = 200 - response.status = "200 OK" - return item.rdf_to_string(format="turtle") - elif str(mimetype).lower() in ["text/rdf+ntriples", "text/rdf+nt"]: - response.content_type = 'text/rdf+ntriples; charset="UTF-8"' - response.status_int = 200 - response.status = "200 OK" - return item.rdf_to_string(format="nt") - # Whoops - nothing satisfies - try: - mimetype = accept_list.pop(0) - except IndexError: - mimetype = None - #Whoops - nothing staisfies - default to text/html - return render('/datasetview_version.html') - @rest.restrict('GET', 'POST', 'PUT', 'DELETE') def itemview(self, silo, id, path): if not ag.granary.issilo(silo): @@ -1212,87 +1021,3 @@ def itemview(self, silo, id, path): else: abort(404) - @rest.restrict('GET') - def itemview_vnum(self, silo, id, path, vnum): - if not ag.granary.issilo(silo): - abort(404) - # Check to see if embargo is on: - c.silo_name = silo - c.id = id - c.version = vnum - c.path = path - c_silo = ag.granary.get_rdf_silo(silo) - - if not c_silo.exists(id): - # dataset doesn't exist - abort(404) - - item = c_silo.get_item(id) - vnum = str(vnum) - if not vnum in item.manifest['versions']: - abort(404) - item.set_version_cursor(vnum) - - embargoed = False - if item.metadata.get('embargoed') not in ["false", 0, False]: - embargoed = True - - if embargoed: - #identity management if item - if not request.environ.get('repoze.who.identity'): - abort(401, "Not Authorised") - ident = request.environ.get('repoze.who.identity') - c.ident = ident - granary_list = ag.granary.silos - silos = ag.authz(granary_list, ident) - if silo not in silos: - abort(403, "Forbidden") - silos_admin = ag.authz(granary_list, ident, permission='administrator') - silos_manager = ag.authz(granary_list, ident, permission='manager') - creator = None - if item.manifest and item.manifest.state and 'metadata' in item.manifest.state and item.manifest.state['metadata'] and \ - 'createdby' in item.manifest.state['metadata'] and item.manifest.state['metadata']['createdby']: - creator = item.manifest.state['metadata']['createdby'] - #if not ident['repoze.who.userid'] == creator and not ident.get('role') in ["admin", "manager"]: - if not (ident['repoze.who.userid'] == creator or silo in silos_admin or silo in silos_manager): - abort(403) - - if item.isfile(path): - fileserve_app = FileApp(item.to_dirpath(path)) - return fileserve_app(request.environ, self.start_response) - elif item.isdir(path): - c.parts = item.list_parts(path, detailed=True) - c.readme_text = None - if "README" in c.parts.keys(): - c.readme_text = get_readme_text(item, "%s/README" % path) - - accept_list = None - if 'HTTP_ACCEPT' in request.environ: - try: - accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) - except: - accept_list= [MT("text", "html")] - if not accept_list: - accept_list= [MT("text", "html")] - mimetype = accept_list.pop(0) - while(mimetype): - if str(mimetype).lower() in ["text/html", "text/xhtml"]: - return render("/itemview_version.html") - elif str(mimetype).lower() in ["text/plain", "application/json"]: - response.content_type = 'application/json; charset="UTF-8"' - response.status_int = 200 - response.status = "200 OK" - returndata = {} - returndata['parts'] = {} - for part in c.parts: - returndata['parts'][part] = serialisable_stat(c.parts[part]) - returndata['readme_text'] = c.readme_text - return simplejson.dumps(returndata) - try: - mimetype = accept_list.pop(0) - except IndexError: - mimetype = None - #Whoops - nothing satisfies - return text/html - return render("/itemview_version.html") - else: - abort(404) diff --git a/rdfdatabank/controllers/error.py b/rdfdatabank/controllers/error.py index 82188c3..ac76f03 100644 --- a/rdfdatabank/controllers/error.py +++ b/rdfdatabank/controllers/error.py @@ -50,6 +50,7 @@ def document(self): resp = request.environ.get('pylons.original_response') content = literal(resp.body) or cgi.escape(request.GET.get('message', '')) code = cgi.escape(request.GET.get('code', str(resp.status_int))) + accept_list = None if 'HTTP_ACCEPT' in request.environ: try: accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) diff --git a/rdfdatabank/controllers/items.py b/rdfdatabank/controllers/items.py index fddd106..bf658bb 100644 --- a/rdfdatabank/controllers/items.py +++ b/rdfdatabank/controllers/items.py @@ -23,7 +23,7 @@ """ import logging -import os, time +import re, os, time from datetime import datetime, timedelta import simplejson from pylons import request, response, session, tmpl_context as c, url, app_globals as ag @@ -36,6 +36,7 @@ from rdfdatabank.lib.conneg import MimeType as MT, parse as conneg_parse log = logging.getLogger(__name__) +JAILBREAK = re.compile("[\/]*\.\.[\/]*") class ItemsController(BaseController): def siloview(self, silo): @@ -154,7 +155,7 @@ def datasetview(self, silo, id): response.content_type = "text/plain" response.status_int = 400 response.status = "400 Bad request. Dataset name not valid" - return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule + return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule_humanized target_dataset = create_new(rdfsilo, target_dataset_name, ident['repoze.who.userid']) response.status_int = 201 response.status = "201 Created" @@ -176,6 +177,17 @@ def datasetview(self, silo, id): target_dataset.sync() target_dataset.sync() + if response.status_int == 201: + try: + ag.b.creation(silo, id, ident=ident['repoze.who.userid']) + except: + pass + else: + try: + ag.b.change(silo, id, ident=ident['repoze.who.userid']) + except: + pass + # conneg return accept_list = None if 'HTTP_ACCEPT' in request.environ: @@ -200,9 +212,12 @@ def datasetview(self, silo, id): response.content_type = "text/plain" return response_message - @rest.restrict('GET', 'POST') + @rest.restrict('GET', 'POST', 'PUT') def itemview(self, silo, id, path): - """API call to read the contents of a zip-file (without having to unpack) and unpack a zip file into a new / existing dataset""" + """API call to + GET - read the contents of a zip-file (without having to unpack) and + POST- unpack a zip file into a new / existing dataset + PUT - Add the zipfile and unpack it onto the existing dataset""" #tmpl_context variables needed: c.silo_name, c.zipfile_contents c.ident, c.id, c.path if not path: abort(400, "You must supply a filename to unpack") @@ -252,12 +267,14 @@ def itemview(self, silo, id, path): item_real_filepath = dataset.to_dirpath() target_filepath = "%s/%s"%(item_real_filepath, path) #c.parts = dataset.list_parts(detailed=False) - if not dataset.isfile(path): - abort(404, "File not found") - if not os.path.isfile(target_filepath): - abort(404, "File not found") - if not check_file_mimetype(target_filepath, 'application/zip'): - abort(415, "File is not of type application/zip") + + if http_method in ["GET", "POST"]: + if not dataset.isfile(path): + abort(404, "File not found") + if not os.path.isfile(target_filepath): + abort(404, "File not found") + if not check_file_mimetype(target_filepath, 'application/zip'): + abort(415, "File is not of type application/zip") if http_method == "GET": try: @@ -307,7 +324,7 @@ def itemview(self, silo, id, path): response.content_type = "text/plain" response.status_int = 400 response.status = "400 Bad request. Dataset name not valid" - return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule + return "Dataset name can contain only the following characters - %s and has to be more than 1 character"%ag.naming_rule_humanized target_dataset = create_new(rdfsilo, target_dataset_name, ident['repoze.who.userid']) response.status_int = 201 response.status = "201 Created" @@ -329,6 +346,17 @@ def itemview(self, silo, id, path): target_dataset.sync() target_dataset.sync() + if response.status_int == 201: + try: + ag.b.creation(silo, id, ident=ident['repoze.who.userid']) + except: + pass + else: + try: + ag.b.change(silo, id, ident=ident['repoze.who.userid']) + except: + pass + # conneg return accept_list = None if 'HTTP_ACCEPT' in request.environ: @@ -352,6 +380,83 @@ def itemview(self, silo, id, path): # Whoops - nothing satisfies - return text/plain response.content_type = "text/plain" return response_message + elif http_method == "PUT": + # Pylons loads the request body into request.body... + # This is not going to work for large files... ah well + # POST will handle large files as they are pushed to disc, + # but this won't + content = request.body + + if JAILBREAK.search(path) != None: + abort(400, "'..' cannot be used in the path") + + #Step 1: Put zipfile in dataset + if dataset.isdir(path): + response.content_type = "text/plain" + response.status_int = 403 + response.status = "403 Forbidden" + return "Cannot PUT a file on to an existing directory" + + if dataset.isfile(path): + code = 204 + else: + code = 201 + + if code == 204: + dataset.increment_version_delta(clone_previous_version=True, copy_filenames=['manifest.rdf', path]) + else: + dataset.increment_version_delta(clone_previous_version=True, copy_filenames=['manifest.rdf']) + dataset.put_stream(path, content) + dataset.del_triple(dataset.uri, u"dcterms:modified") + dataset.add_triple(dataset.uri, u"dcterms:modified", datetime.now()) + dataset.del_triple(dataset.uri, u"oxds:currentVersion") + dataset.add_triple(dataset.uri, u"oxds:currentVersion", dataset.currentversion) + dataset.sync() + + target_dataset = rdfsilo.get_item(id) + #step 2: Unpack zip item + if not check_file_mimetype(target_filepath, 'application/zip'): + abort(415, "File is not of type application/zip") + try: + unpack_zip_item(target_dataset, dataset, path, rdfsilo, ident['repoze.who.userid']) + except BadZipfile: + abort(400, "Couldn't unpack zipfile") + + target_dataset.sync() + target_dataset.sync() + target_dataset.sync() + + response.status = "204 Updated" + response.status_int = 204 + response_message = None + try: + ag.b.change(silo, id, path, ident=ident['repoze.who.userid']) + except: + pass + + # conneg return + accept_list = None + if 'HTTP_ACCEPT' in request.environ: + try: + accept_list = conneg_parse(request.environ['HTTP_ACCEPT']) + except: + accept_list= [MT("text", "html")] + if not accept_list: + accept_list= [MT("text", "html")] + mimetype = accept_list.pop(0) + while(mimetype): + if str(mimetype).lower() in ["text/html", "text/xhtml"]: + redirect(url(controller="datasets", action="datasetview", silo=silo, id=id)) + elif str(mimetype).lower() in ["text/plain", "application/json"]: + response.content_type = "text/plain" + return response_message + try: + mimetype = accept_list.pop(0) + except IndexError: + mimetype = None + # Whoops - nothing satisfies - return text/plain + response.content_type = "text/plain" + return response_message @rest.restrict('GET') def subitemview(self, silo, id, path, subpath): diff --git a/rdfdatabank/controllers/search.py b/rdfdatabank/controllers/search.py index 455b9ee..1641fe6 100644 --- a/rdfdatabank/controllers/search.py +++ b/rdfdatabank/controllers/search.py @@ -175,8 +175,8 @@ def detailed(self, query=None, additional_fields=[]): start = request.params.get('start', None) rows = request.params.get('rows', None) sort = request.params.get('sort', None) - format = request.params.get('format', None) - if not format: + res_format = request.params.get('format', None) + if not res_format: accept_list = None if 'HTTP_ACCEPT' in request.environ: try: @@ -188,23 +188,24 @@ def detailed(self, query=None, additional_fields=[]): mimetype = accept_list.pop(0) while(mimetype): if str(mimetype).lower() in ["text/html", "text/xhtml"]: - format = 'html' + res_format = 'html' break elif str(mimetype).lower() in ["text/plain", "application/json"]: - format = 'json' + res_format = 'json' break elif str(mimetype).lower() in ["text/xml"]: - format = 'xml' + res_format = 'xml' break elif str(mimetype).lower() in ["text/csv"]: - format = 'csv' + res_format = 'csv' break try: mimetype = accept_list.pop(0) except IndexError: mimetype = None # Whoops - nothing satisfies - return text/plain - format = 'json' + if not res_format: + res_format = 'html' c.sort = 'score desc' # Lock down the sort parameter. @@ -309,8 +310,8 @@ def detailed(self, query=None, additional_fields=[]): else: solr_params['q'] = c.q.encode('utf-8')+query_filter - if format in ['json', 'xml', 'python', 'php']: - solr_params['wt'] = format + if res_format in ['json', 'xml', 'python', 'php']: + solr_params['wt'] = res_format else: solr_params['wt'] = 'json' @@ -342,16 +343,16 @@ def detailed(self, query=None, additional_fields=[]): # conneg return response.status_int = 200 response.status = "200 OK" - if format == "html": + if res_format == "html": c.numFound = 0 c.message = 'Sorry, either that search "%s" resulted in no matches, or the search service is not functional.' % c.q return render('/search.html') - elif format == 'xml': + elif res_format == 'xml': response.headers['Content-Type'] = 'application/xml' response.charset = 'utf8' c.atom = {} return render('/atom_results.html') - elif format == 'json': + elif res_format == 'json': response.headers['Content-Type'] = 'application/json' response.charset = 'utf8' return {} @@ -362,16 +363,16 @@ def detailed(self, query=None, additional_fields=[]): response.status_int = 200 response.status = "200 OK" - if format == 'xml': + if res_format == 'xml': response.headers['Content-Type'] = 'application/xml' response.charset = 'utf8' c.atom = solr_response return render('/atom_results.html') - elif format == 'json': + elif res_format == 'json': response.headers['Content-Type'] = 'application/json' response.charset = 'utf8' return solr_response - elif format in ['csv', 'python', 'php']: + elif res_format in ['csv', 'python', 'php']: response.headers['Content-Type'] = 'application/text' response.charset = 'utf8' return solr_response diff --git a/rdfdatabank/lib/app_globals.py b/rdfdatabank/lib/app_globals.py index ce3425a..b0195a8 100644 --- a/rdfdatabank/lib/app_globals.py +++ b/rdfdatabank/lib/app_globals.py @@ -88,6 +88,11 @@ def __init__(self): if config.has_key("naming_rule"): self.naming_rule = config['naming_rule'] + if config.has_key("naming_rule_humanized"): + self.naming_rule_humanized = config['naming_rule_humanized'] + elif config.has_key("naming_rule"): + self.naming_rule_humanized = config['naming_rule'] + if config.has_key("metadata.embargoed"): self.metadata_embargoed = config['metadata.embargoed'] if isinstance(self.metadata_embargoed, basestring): diff --git a/rdfdatabank/lib/file_unpack.py b/rdfdatabank/lib/file_unpack.py index 0ac4dca..90a1521 100644 --- a/rdfdatabank/lib/file_unpack.py +++ b/rdfdatabank/lib/file_unpack.py @@ -191,7 +191,7 @@ def unpack_zip_item(target_dataset, current_dataset, zip_item, silo, ident): # -- Step 4 ----------------------------- #Copy unpacked dir as new version - target_dataset.move_directory_as_new_version(unpacked_dir) + target_dataset.move_directory_as_new_version(unpacked_dir, log="Unpacked file %s. Contents"%zip_item) # -- Step 5 ----------------------------- #Add type and isVersionOf metadata @@ -242,12 +242,14 @@ def unpack_zip_item(target_dataset, current_dataset, zip_item, silo, ident): os.remove(mani_file) # -- Step 7 ----------------------------- + #uri_s = "%s/%s" % (current_dataset.uri, zip_item.lstrip(os.sep)) + #uri_p = "%s?version=%s" % (target_dataset.uri, target_dataset.currentversion) + #current_dataset.add_triple(uri_s, "dcterms:hasVersion", uri_p) + #current_dataset.sync() + target_dataset.sync() target_dataset.sync() target_dataset.sync() - current_dataset.add_triple("%s/%s" % (current_dataset.uri, zip_item.lstrip(os.sep)), "dcterms:hasVersion", target_dataset.uri) - current_dataset.sync() - return True """ diff --git a/rdfdatabank/lib/utils.py b/rdfdatabank/lib/utils.py index 0e75975..5ecb04a 100644 --- a/rdfdatabank/lib/utils.py +++ b/rdfdatabank/lib/utils.py @@ -310,6 +310,8 @@ def munge_manifest(manifest_file, item): pass for (s, p, o) in triples: item.add_triple(s, p, o) + manifest_file_name = os.path.basename(manifest_file) + item.manifest['versionlog'][item.currentversion].append('Updated file manifest.rdf') item.sync() if seeAlsoFiles: for fileuri in seeAlsoFiles: diff --git a/rdfdatabank/public/static/styles/basic.css b/rdfdatabank/public/static/styles/basic.css index a80293a..a848892 100644 --- a/rdfdatabank/public/static/styles/basic.css +++ b/rdfdatabank/public/static/styles/basic.css @@ -642,7 +642,8 @@ color: #fff; .intro, .pleaseNote, -.message{ +.message, +.about { background: #fdfefe; /* for non-css3 browsers */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfefe', endColorstr='#f4f7fa'); /* for IE */ background: -webkit-gradient(linear, left top, left bottom, from(#fdfefe), to(#f4f7fa)); /* for webkit browsers */ @@ -667,7 +668,14 @@ color: #fff; font-weight: bold; } +.about { +margin: 0px 20px; +padding: 10px 30px; +} +.about p { + margin-bottom: 20px; +} .create-silo form { border: 1px solid #eee; padding: 5px; @@ -790,32 +798,66 @@ div.response_doc { padding-bottom: 20px; border-bottom: 1px solid #999; } -.response_doc span.stitle a { + +.response_doc .silotitle { font-weight: bold; - color: #002147; - font-size: 14px; + font-size: 1.2em; + margin-bottom: 5px; } -.row { - width: 100%; - clear: both; + +.response_doc .silotitle a { + font-weight: bold; + font-size: 1.2em; + + background: #7e94a5; /* for non-css3 browsers */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7e94a5', endColorstr='#90b6b7'); /* for IE */ + background: -webkit-gradient(linear, left top, left bottom, from(#7e94a5), to(#90b6b7)); /* for webkit browsers */ + background: -moz-linear-gradient(top, #7e94a5, #90b6b7); /* for firefox 3.6+ */ + + color: #fff; + display: block; + padding: 5px; + text-decoration: none; + } -.label { +#results .response_doc .silotitle a:focus, +#results .response_doc .silotitle a:hover { + +text-decoration: underline; + +} + + +.response_doc .silotitle a:visited { + + + background: #425e77; /* for non-css3 browsers */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#425e77', endColorstr='#609494'); /* for IE */ + background: -webkit-gradient(linear, left top, left bottom, from(#425e77), to(#609494)); /* for webkit browsers */ + background: -moz-linear-gradient(top, #425e77, #609494); /* for firefox 3.6+ */ + + +} + + + + +.response_doc dt { font-weight: bold; - color: #002147; + font-size: 1em; vertical-align: top; width: 150px; float:left; display: inline; } -.value, .value a, .value a:hover, .value a:active, .value a:visited { - display:inline; - padding-left:2px; - text-align:right; - color: #000000; - text-decoration: none; - font-weight: normal; +.response_doc dd { + padding-left:3px; + text-align:left; + font-weight: normal; + font-size: 1em; + margin-bottom: 5px; } .rt { @@ -826,12 +868,12 @@ div.response_doc { display: inline; } +/* facets in results */ #facet_wrapper { position: absolute; width: 160px; - left: 10px; margin-left: 10px; - top: 250px; + top: 150px; font-size: 11px; } @@ -840,10 +882,39 @@ div.response_doc { word-wrap: break-word; } +.facet_title { + /* + background: #BBB; + padding: 10px 5px; + border-bottom: 1px solid #002147 !important; + font-size: 1.3em; + font-weight: bold; + text-align: center; + */ + + background: #425e77; + color: #fff; + padding: 10px 5px; + border-bottom: 1px solid #fff !important; + font-size: 1.3em; + font-weight: bold; + text-align: center; + +} + .facet_results .subheading { + /* background: #BBB; padding: 4px 5px; border-bottom: 1px solid #002147 !important; + */ + background: #425e77; /* for non-css3 browsers */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#425e77', endColorstr='#609494'); /* for IE */ + background: -webkit-gradient(linear, left top, left bottom, from(#425e77), to(#609494)); /* for webkit browsers */ + background: -moz-linear-gradient(top, #425e77, #609494); /* for firefox 3.6+ */ + color: #fff; + padding: 4px 5px; + border-bottom: 1px solid #fff !important; } .facet_results .facetlist { @@ -855,7 +926,7 @@ div.response_doc { .facet_results .subheading a { text-decoration: none; - color: black; + color: #fff; font-weight: normal; background: url('/static/styles/images/fplus.png') no-repeat 0% 60%; padding-left: 18px; @@ -885,13 +956,78 @@ div.response_doc { font-size: 11px; font-weight: bold; } -#current_search { - font-weight: bold; - background: #002147; - color: white; - font-size: 1.2em; - border-bottom: 1px solid white; - padding: 4px 5px; + +/*Current search */ +.current_search { + + background: #FDFEFE; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfefe', endColorstr='#f4f7fa'); + background: -webkit-gradient(linear, left top, left bottom, from(#FDFEFE), to(#F4F7FA)); + background: -moz-linear-gradient(top, #FDFEFE, #F4F7FA); + border: 1px solid #DFE2E4; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + padding: 5px; +} + +h2.current_search_header { + + border-bottom: 1px solid #DFE2E4; + font-size: 1.3em; + margin: 0px; + padding: 0px; + +} + +.numRecords { + font-size: 1.2em; + font-weight: bold; +} + + +.current_facet { + margin: 10px; + border-bottom: 1px dotted #cccccc; + clear: both; + height: 25px; +} + +.current_facet .search_remove { + float:left; + position:inline; + font-weight: bold; + width: 50px; + text-align: left; + padding-right: 10px; +} + +.current_facet .search_remove form { + margin: 0px; +} + +.current_facet .search_remove form input{ + margin: 0px; + width: 20px; + font-size: 1em; + font-weight: bold; +} + +.current_facet .label { + float:left; + position:inline; + font-weight: bold; + width: 200px; + text-align: left; + padding: 5px 10px 0px 0px; +} + +.current_facet .value { + float:left; + position:inline; + text-align: left; + margin-bottom: 5px; + padding: 5px 10px 0px 0px; } div#link_to_this_search { @@ -899,6 +1035,8 @@ div#link_to_this_search { margin-bottom: -15px; clear: both; color: #000000; + padding-bottom: 10px; + border-bottom: 1px solid #999999 } div#link_to_this_search a { @@ -1010,6 +1148,14 @@ span#itemsppt a.active:hover, span#itemsppb a.active:hover { border: 1px solid #666; background: #FFFF99; } + + +ul.versions li{ +display: inline; +list-style: none; +} + + /* Used in the api */ .List-contents { padding-bottom: 5px; @@ -1086,23 +1232,38 @@ span#itemsppt a.active:hover, span#itemsppb a.active:hover { /* Data package */ #editor_view { float: right; - background: #fff; /* for non-css3 browsers */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff', endColorstr='#ccc'); /* for IE */ - background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ccc)); /* for webkit browsers */ - background: -moz-linear-gradient(top, #fff, #ccc); /* for firefox 3.6+ */ - border-top: 1px solid #ccc; - box-shadow: #666 0.3em 0.3em 0.2em; /* Opera 10.5, IE 9.0 */ - -webkit-box-shadow: #aaa 0.3em 0.3em 0.2em; /* Chrome Safari */ - -moz-box-shadow: #aaa 0.3em 0.3em 0.2em; /* Firefox F3.5+ */ + background: #FDFEFE; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdfefe', endColorstr='#f4f7fa'); + background: -webkit-gradient(linear, left top, left bottom, from(#FDFEFE), to(#F4F7FA)); + background: -moz-linear-gradient(top, #FDFEFE, #F4F7FA); + border: 1px solid #DFE2E4; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + padding: 0px; clear: both; - margin: 10px 20px 10px 10px; - padding: 5px; + margin: 0px 20px 10px 10px; text-decoration: none; + } -#editor_view .title{ - text-align: center; - font-weight: bold; +#editor_view ul { + margin: 0px; + padding: 5px 2px; +} + +#editor_view h2{ + + background: #425E77; +filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#425e77', endColorstr='#609494'); +background: -webkit-gradient(linear, left top, left bottom, from(#425E77), to(#609494)); +background: -moz-linear-gradient(top, #425E77, #609494); +color: white; +font-size: 1.3em; + margin: 0px; + padding: 3px; + text-align: center; + } #editor_view a { @@ -1173,8 +1334,8 @@ span#itemsppt a.active:hover, span#itemsppb a.active:hover { } .metadata td div { - max-height: 150px; - overflow: auto; + /*max-height: 150px; + overflow: auto;*/ } pre { diff --git a/rdfdatabank/templates/about.html b/rdfdatabank/templates/about.html index 48945e3..101d6a6 100644 --- a/rdfdatabank/templates/about.html +++ b/rdfdatabank/templates/about.html @@ -3,34 +3,13 @@ <%def name="head_tags()"> About DataBank +

About Databank

+
diff --git a/rdfdatabank/templates/admin_siloview.html b/rdfdatabank/templates/admin_siloview.html index f948663..03118d4 100644 --- a/rdfdatabank/templates/admin_siloview.html +++ b/rdfdatabank/templates/admin_siloview.html @@ -12,6 +12,6 @@

Silo Metadata


Delete this silo - NO UNDO!


-

Alter silo metadata

+

Update silo metadata

<%include file="/alter_silo.html"/> diff --git a/rdfdatabank/templates/admin_user.html b/rdfdatabank/templates/admin_user.html index 8bf256f..e05061f 100644 --- a/rdfdatabank/templates/admin_user.html +++ b/rdfdatabank/templates/admin_user.html @@ -34,6 +34,6 @@

User ${c.username}

% endif % if c.ident['user'].user_name == c.username: -

Update user details for ${c.username}

+

Update user details for ${c.username}

<%include file="/update_user.html"/> % endif diff --git a/rdfdatabank/templates/base.html b/rdfdatabank/templates/base.html index 4f344e2..d22be59 100644 --- a/rdfdatabank/templates/base.html +++ b/rdfdatabank/templates/base.html @@ -44,6 +44,9 @@ ${ h.javascript_link( '/static/js/html5.js' ) } + + + @@ -90,36 +93,33 @@ <% user_logged_in = request.environ.get("repoze.who.identity") + showAdmin = False if user_logged_in: c.user_logged_in_name = user_logged_in['repoze.who.userid'] + if 'role' in user_logged_in and user_logged_in['role'] == "admin": + showAdmin = True current_url = request.environ.get('PATH_INFO') %>
+

Databank is being developed by the Bodleian Digital Library Systems and Services of the University of Oxford as a part of the Dataflow project

-

info on project goes here goes here...

+

DataFlow is creating a two-stage data management infrastructure that makes it easy for you and your research group to work with, annotate, publish, and permanently store your research data. You manage this locally using your own instance of DataStage, while allowing your institution to deploy DataBank easily to preserve and publish your most valuable datasets.

-

Background

+

Published datasets have assigned DOIs to make them citable and to gain you academic credit.

- -

Documentation

- - - \ No newline at end of file +

Want to test-drive the system? Help develop it? Learn more and Join us!

+